From 1b21d7513dfd1272c752087f947136ac1c9094cd Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Thu, 19 Dec 2024 01:02:08 +0800 Subject: [PATCH] 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)