From 8c020488ddf9c60a876686a46ea7f666542159be Mon Sep 17 00:00:00 2001 From: grand Date: Mon, 24 Feb 2025 12:04:06 +0100 Subject: [PATCH] * fix: restore compatibility for older o1 models (o1-mini, o1-preview) --- backend/open_webui/routers/openai.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/routers/openai.py b/backend/open_webui/routers/openai.py index 78aae9980..69232e3fe 100644 --- a/backend/open_webui/routers/openai.py +++ b/backend/open_webui/routers/openai.py @@ -84,9 +84,15 @@ def openai_o1_o3_handler(payload): payload["max_completion_tokens"] = 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": - 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