From 1b21d7513dfd1272c752087f947136ac1c9094cd Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Thu, 19 Dec 2024 01:02:08 +0800 Subject: [PATCH 1/2] fix: reduce model provider fetchs --- api/contexts/__init__.py | 2 +- .../model_providers/model_provider_factory.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/api/contexts/__init__.py b/api/contexts/__init__.py index 25419af278..50688876cf 100644 --- a/api/contexts/__init__.py +++ b/api/contexts/__init__.py @@ -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") diff --git a/api/core/model_runtime/model_providers/model_provider_factory.py b/api/core/model_runtime/model_providers/model_provider_factory.py index 8eb9b35d41..2bba3847b1 100644 --- a/api/core/model_runtime/model_providers/model_provider_factory.py +++ b/api/core/model_runtime/model_providers/model_provider_factory.py @@ -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) From a1cdca02e3d4a2e511f218a2996c580f4af717a4 Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Thu, 19 Dec 2024 01:02:44 +0800 Subject: [PATCH 2/2] fix: formatter --- api/contexts/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/contexts/__init__.py b/api/contexts/__init__.py index 50688876cf..64dae3a2d2 100644 --- a/api/contexts/__init__.py +++ b/api/contexts/__init__.py @@ -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