Kaynağa Gözat

Merge pull request #1131 from open-webui/dev

fix: env var migration issue
Timothy Jaeryang Baek 1 yıl önce
ebeveyn
işleme
7ae4669f35
2 değiştirilmiş dosya ile 23 ekleme ve 18 silme
  1. 18 12
      backend/apps/openai/main.py
  2. 5 6
      backend/config.py

+ 18 - 12
backend/apps/openai/main.py

@@ -179,20 +179,26 @@ def merge_models_lists(model_lists):
 
 async def get_all_models():
     print("get_all_models")
-    tasks = [
-        fetch_url(f"{url}/models", app.state.OPENAI_API_KEYS[idx])
-        for idx, url in enumerate(app.state.OPENAI_API_BASE_URLS)
-    ]
-    responses = await asyncio.gather(*tasks)
-    responses = list(filter(lambda x: x is not None and "error" not in x, responses))
-    models = {
-        "data": merge_models_lists(
-            list(map(lambda response: response["data"], responses))
+
+    if len(app.state.OPENAI_API_KEYS) == 1 and app.state.OPENAI_API_KEYS[0] == "":
+        models = {"data": []}
+    else:
+        tasks = [
+            fetch_url(f"{url}/models", app.state.OPENAI_API_KEYS[idx])
+            for idx, url in enumerate(app.state.OPENAI_API_BASE_URLS)
+        ]
+        responses = await asyncio.gather(*tasks)
+        responses = list(
+            filter(lambda x: x is not None and "error" not in x, responses)
         )
-    }
-    app.state.MODELS = {model["id"]: model for model in models["data"]}
+        models = {
+            "data": merge_models_lists(
+                list(map(lambda response: response["data"], responses))
+            )
+        }
+        app.state.MODELS = {model["id"]: model for model in models["data"]}
 
-    return models
+        return models
 
 
 @app.get("/models")

+ 5 - 6
backend/config.py

@@ -209,10 +209,6 @@ OLLAMA_API_BASE_URL = os.environ.get(
 
 OLLAMA_BASE_URL = os.environ.get("OLLAMA_BASE_URL", "")
 
-if ENV == "prod":
-    if OLLAMA_BASE_URL == "/ollama":
-        OLLAMA_BASE_URL = "http://host.docker.internal:11434"
-
 
 if OLLAMA_BASE_URL == "" and OLLAMA_API_BASE_URL != "":
     OLLAMA_BASE_URL = (
@@ -221,6 +217,11 @@ if OLLAMA_BASE_URL == "" and OLLAMA_API_BASE_URL != "":
         else OLLAMA_API_BASE_URL
     )
 
+if ENV == "prod":
+    if OLLAMA_BASE_URL == "/ollama":
+        OLLAMA_BASE_URL = "http://host.docker.internal:11434"
+
+
 OLLAMA_BASE_URLS = os.environ.get("OLLAMA_BASE_URLS", "")
 OLLAMA_BASE_URLS = OLLAMA_BASE_URLS if OLLAMA_BASE_URLS != "" else OLLAMA_BASE_URL
 
@@ -234,8 +235,6 @@ OLLAMA_BASE_URLS = [url.strip() for url in OLLAMA_BASE_URLS.split(";")]
 OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY", "")
 OPENAI_API_BASE_URL = os.environ.get("OPENAI_API_BASE_URL", "")
 
-if OPENAI_API_KEY == "":
-    OPENAI_API_KEY = "none"
 
 if OPENAI_API_BASE_URL == "":
     OPENAI_API_BASE_URL = "https://api.openai.com/v1"