diff --git a/backend/open_webui/utils/misc.py b/backend/open_webui/utils/misc.py index 13539ca9d..a63d425ff 100644 --- a/backend/open_webui/utils/misc.py +++ b/backend/open_webui/utils/misc.py @@ -447,7 +447,7 @@ def openai_chat_completion_message_template( **({"tool_calls": tool_calls} if tool_calls else {}), } - template["choices"][0]["finish_reason"] = "stop" + template["choices"][0]["finish_reason"] = "tool_calls" if tool_calls else "stop" if usage: template["usage"] = usage diff --git a/backend/open_webui/utils/response.py b/backend/open_webui/utils/response.py index 9d1920651..5a4028f11 100644 --- a/backend/open_webui/utils/response.py +++ b/backend/open_webui/utils/response.py @@ -166,6 +166,9 @@ async def convert_streaming_response_ollama_to_openai(ollama_streaming_response) model, message_content, reasoning_content, openai_tool_calls, usage ) + if done and openai_tool_calls: + data["choices"][0]["finish_reason"] = "tool_calls" + line = f"data: {json.dumps(data)}\n\n" yield line