Merge branch 'fix/chore-fix' into dev/plugin-deploy

This commit is contained in:
Yeuoly 2024-12-19 01:02:56 +08:00
commit 69b43c513a
No known key found for this signature in database
GPG Key ID: A66E7E320FB19F61
2 changed files with 8 additions and 3 deletions

View File

@ -3,8 +3,8 @@ from threading import Lock
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from core.tools.plugin_tool.provider import PluginToolProviderController
from core.plugin.entities.plugin_daemon import PluginModelProviderEntity
from core.tools.plugin_tool.provider import PluginToolProviderController
from core.workflow.entities.variable_pool import VariablePool
@ -15,5 +15,5 @@ workflow_variable_pool: ContextVar["VariablePool"] = ContextVar("workflow_variab
plugin_tool_providers: ContextVar[dict[str, "PluginToolProviderController"]] = ContextVar("plugin_tool_providers")
plugin_tool_providers_lock: ContextVar[Lock] = ContextVar("plugin_tool_providers_lock")
plugin_model_providers: ContextVar[list["PluginModelProviderEntity"]] = ContextVar("plugin_model_providers")
plugin_model_providers: ContextVar[list["PluginModelProviderEntity"] | None] = ContextVar("plugin_model_providers")
plugin_model_providers_lock: ContextVar[Lock] = ContextVar("plugin_model_providers_lock")

View File

@ -77,11 +77,16 @@ class ModelProviderFactory:
try:
contexts.plugin_model_providers.get()
except LookupError:
contexts.plugin_model_providers.set([])
contexts.plugin_model_providers.set(None)
contexts.plugin_model_providers_lock.set(Lock())
with contexts.plugin_model_providers_lock.get():
plugin_model_providers = contexts.plugin_model_providers.get()
if plugin_model_providers is not None:
return plugin_model_providers
plugin_model_providers = []
contexts.plugin_model_providers.set(plugin_model_providers)
# Fetch plugin model providers
plugin_providers = self.plugin_model_manager.fetch_model_providers(self.tenant_id)