浏览代码

* fix: restore compatibility for older o1 models (o1-mini, o1-preview)

grand 2 月之前
父节点
当前提交
8c020488dd
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      backend/open_webui/routers/openai.py

+ 8 - 2
backend/open_webui/routers/openai.py

@@ -84,9 +84,15 @@ def openai_o1_o3_handler(payload):
         payload["max_completion_tokens"] = payload["max_tokens"]
         payload["max_completion_tokens"] = payload["max_tokens"]
         del payload["max_tokens"]
         del payload["max_tokens"]
 
 
-    # Fix: o1 and o3 do not support the "system" parameter. Modify "system" to "developer"
+    # Fix: o1 and o3 do not support the "system" role directly.
+    # For older models like "o1-mini" or "o1-preview", use role "user".
+    # For newer o1/o3 models, replace "system" with "developer".
     if payload["messages"][0]["role"] == "system":
     if payload["messages"][0]["role"] == "system":
-        payload["messages"][0]["role"] = "developer"
+        model_lower = payload["model"].lower()
+        if model_lower.startswith("o1-mini") or model_lower.startswith("o1-preview"):
+            payload["messages"][0]["role"] = "user"
+        else:
+            payload["messages"][0]["role"] = "developer"
 
 
     return payload
     return payload