Explorar o código

refac/fix: base model cache

Timothy Jaeryang Baek hai 3 meses
pai
achega
05a9b72670
Modificáronse 1 ficheiros con 7 adicións e 3 borrados
  1. 7 3
      backend/open_webui/utils/models.py

+ 7 - 3
backend/open_webui/utils/models.py

@@ -82,10 +82,13 @@ async def get_all_models(request, refresh: bool = False, user: UserModel = None)
         and request.app.state.BASE_MODELS
         and (request.app.state.config.ENABLE_BASE_MODELS_CACHE and not refresh)
     ):
-        models = request.app.state.BASE_MODELS
+        base_models = request.app.state.BASE_MODELS
     else:
-        models = await get_all_base_models(request, user=user)
-        request.app.state.BASE_MODELS = models
+        base_models = await get_all_base_models(request, user=user)
+        request.app.state.BASE_MODELS = base_models
+
+    # deep copy the base models to avoid modifying the original list
+    models = [model.copy() for model in base_models]
 
     # If there are no models, return an empty list
     if len(models) == 0:
@@ -145,6 +148,7 @@ async def get_all_models(request, refresh: bool = False, user: UserModel = None)
     custom_models = Models.get_all_models()
     for custom_model in custom_models:
         if custom_model.base_model_id is None:
+            # Applied directly to a base model
             for model in models:
                 if custom_model.id == model["id"] or (
                     model.get("owned_by") == "ollama"