[GH-ISSUE #18121] issue: tool calling not working when streaming turned off #34028

Closed
opened 2026-04-25 07:55:08 -05:00 by GiteaMirror · 12 comments
Owner

Originally created by @mramendi on GitHub (Oct 7, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/18121

Check Existing Issues

  • I have searched for any existing and/or related issues.
  • I have searched for any existing and/or related discussions.
  • I am using the latest version of Open WebUI.

Installation Method

Docker

Open WebUI Version

v0.6.32

Ollama Version (if applicable)

No response

Operating System

RHEL 9

Browser (if applicable)

No response

Confirmation

  • I have read and followed all instructions in README.md.
  • I am using the latest version of both Open WebUI and Ollama.
  • I have included the browser console logs.
  • I have included the Docker container logs.
  • I have provided every relevant configuration, setting, and environment variable used in my setup.
  • I have clearly listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc).
  • I have documented step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation. My steps:
  • Start with the initial platform/version/OS and dependencies used,
  • Specify exact install/launch/configure commands,
  • List URLs visited, user input (incl. example values/emails/passwords if needed),
  • Describe all options and toggles enabled or changed,
  • Include any files or environmental changes,
  • Identify the expected and actual result at each stage,
  • Ensure any reasonably skilled user can follow and hit the same issue.

Expected Behavior

When a model is instructed to call a tool, it calls the tool, whether streaming replies is turned on or off.

Actual Behavior

With streaming on (the default setting) native tool calling works fine, with streaming off the model attempts to call the tool and returns the tool call message - however, OpenWebUI does NOT execute the tool and instead returns to the chat.

Steps to Reproduce

  1. Start with OWUI 0.6.32 ; I use a container install on RHEL with Podman and Quadlet
  2. Use a tried-and-tested model, in my case GLM-4.6 via OpenRouter. Provide a tool that is trivial to call,
  3. Ensure native tool calling is on.
  4. Instruct the model to call the tool; observe success.
  5. Start a new chat with the same model and now ensure that native tool calling is still on, but streaming replies is off.
    1. Instruct the model to call the tool; observe failure as instead of the tool call you are left back in chat.

Logs & Screenshots

Here's the response from the model on which I was returned to chat.


{
  "id": "gen-1759860710-3bv2rlkEWdSMZAb6jfvv",
  "model": "z-ai/glm-4.6",
  "usage": {
    "total_tokens": 433,
    "prompt_tokens": 302,
    "completion_tokens": 131,
    "prompt_tokens_details": null,
    "completion_tokens_details": null
  },
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "\n\nI'll perform the sequential tool calling exactly as requested. Let me start by calling the ping tool first.\n",
        "tool_calls": [
          {
            "id": "call_49a212c3b89543699c10a496",
            "type": "function",
            "index": 0,
            "function": {
              "name": "ping",
              "arguments": "{\"query\": \"test\"}"
            }
          }
        ],
        "function_call": null,
        "reasoning_content": "The user wants me to test sequential tool calling with a specific sequence:\n1. Call the ping tool\n2. Display the result of the ping call\n3. Only after that, call the pong tool\n4. Display the result of the pong call\n\nI need to make sure I follow this exact sequence. Let me start by calling the ping tool. I need to provide a query parameter for the ping tool - I'll use something simple like \"test\"."
      },
      "finish_reason": "tool_calls",
      "provider_specific_fields": {
        "native_finish_reason": "tool_calls"
      }
    }
  ],
  "created": 1759860710,
  "provider": "Chutes",
  "system_fingerprint": null
}

### Additional Information

_No response_
Originally created by @mramendi on GitHub (Oct 7, 2025). Original GitHub issue: https://github.com/open-webui/open-webui/issues/18121 ### Check Existing Issues - [x] I have searched for any existing and/or related issues. - [x] I have searched for any existing and/or related discussions. - [x] I am using the latest version of Open WebUI. ### Installation Method Docker ### Open WebUI Version v0.6.32 ### Ollama Version (if applicable) _No response_ ### Operating System RHEL 9 ### Browser (if applicable) _No response_ ### Confirmation - [x] I have read and followed all instructions in `README.md`. - [x] I am using the latest version of **both** Open WebUI and Ollama. - [x] I have included the browser console logs. - [x] I have included the Docker container logs. - [x] I have **provided every relevant configuration, setting, and environment variable used in my setup.** - [x] I have clearly **listed every relevant configuration, custom setting, environment variable, and command-line option that influences my setup** (such as Docker Compose overrides, .env values, browser settings, authentication configurations, etc). - [x] I have documented **step-by-step reproduction instructions that are precise, sequential, and leave nothing to interpretation**. My steps: - Start with the initial platform/version/OS and dependencies used, - Specify exact install/launch/configure commands, - List URLs visited, user input (incl. example values/emails/passwords if needed), - Describe all options and toggles enabled or changed, - Include any files or environmental changes, - Identify the expected and actual result at each stage, - Ensure any reasonably skilled user can follow and hit the same issue. ### Expected Behavior When a model is instructed to call a tool, it calls the tool, whether streaming replies is turned on or off. ### Actual Behavior With streaming on (the default setting) native tool calling works fine, with streaming off the model attempts to call the tool and returns the tool call message - however, OpenWebUI does NOT execute the tool and instead returns to the chat. ### Steps to Reproduce 1. Start with OWUI 0.6.32 ; I use a container install on RHEL with Podman and Quadlet 2. Use a tried-and-tested model, in my case GLM-4.6 via OpenRouter. Provide a tool that is trivial to call, 3. Ensure native tool calling is on. 4. Instruct the model to call the tool; observe success. 5. Start a new chat with the same model and now ensure that native tool calling is still on, but streaming replies is off. 6. 4. Instruct the model to call the tool; observe failure as instead of the tool call you are left back in chat. ### Logs & Screenshots Here's the response from the model on which I was returned to chat. ``` { "id": "gen-1759860710-3bv2rlkEWdSMZAb6jfvv", "model": "z-ai/glm-4.6", "usage": { "total_tokens": 433, "prompt_tokens": 302, "completion_tokens": 131, "prompt_tokens_details": null, "completion_tokens_details": null }, "object": "chat.completion", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "\n\nI'll perform the sequential tool calling exactly as requested. Let me start by calling the ping tool first.\n", "tool_calls": [ { "id": "call_49a212c3b89543699c10a496", "type": "function", "index": 0, "function": { "name": "ping", "arguments": "{\"query\": \"test\"}" } } ], "function_call": null, "reasoning_content": "The user wants me to test sequential tool calling with a specific sequence:\n1. Call the ping tool\n2. Display the result of the ping call\n3. Only after that, call the pong tool\n4. Display the result of the pong call\n\nI need to make sure I follow this exact sequence. Let me start by calling the ping tool. I need to provide a query parameter for the ping tool - I'll use something simple like \"test\"." }, "finish_reason": "tool_calls", "provider_specific_fields": { "native_finish_reason": "tool_calls" } } ], "created": 1759860710, "provider": "Chutes", "system_fingerprint": null } ### Additional Information _No response_
GiteaMirror added the bug label 2026-04-25 07:55:08 -05:00
Author
Owner

@Classic298 commented on GitHub (Oct 7, 2025):

NOT an Open WebUI issue.

Please research first - this is not an Open WebUI issue!

Native function (tool) calling in LLMs like GPT and Gemini is designed to work with streaming enabled. The function calling process is integrated into the streaming output so that the model can incrementally emit tokens representing the tool call intent, its arguments, and then receive and incorporate tool results in real time.

Without streaming, the model would need to complete the entire processing including tool calls before sending any output, which is inefficient and leads to slower response times.
The APIs simply do not allow it - for a good reason.

Additionally, since tool calls are integrated within the token generation stream as special message parts, streaming is necessary to handle this structured interaction, including managing tool call start, arguments passing, tool call completion, and final output tokens to the user.

Finally: This is a duplicate issue, the exact same question was raised multiple times before in issues and discussions.

PS: When turning OFF streaming, use the default function calling system provided by Open WebUI (non-native) then it can still work with streaming OFF.

<!-- gh-comment-id:3378210942 --> @Classic298 commented on GitHub (Oct 7, 2025): NOT an Open WebUI issue. Please research first - this is not an Open WebUI issue! Native function (tool) calling in LLMs like GPT and Gemini is designed to work with streaming enabled. The function calling process is integrated into the streaming output so that the model can incrementally emit tokens representing the tool call intent, its arguments, and then receive and incorporate tool results in real time. Without streaming, the model would need to complete the entire processing including tool calls before sending any output, which is inefficient and leads to slower response times. The APIs simply do not allow it - for a good reason. Additionally, since tool calls are integrated within the token generation stream as special message parts, streaming is necessary to handle this structured interaction, including managing tool call start, arguments passing, tool call completion, and final output tokens to the user. Finally: This is a duplicate issue, the exact same question was raised multiple times before in issues and discussions. PS: When turning OFF streaming, use the default function calling system provided by Open WebUI (non-native) then it can still work with streaming OFF.
Author
Owner

@mramendi commented on GitHub (Oct 7, 2025):

Your explanation does not reflect the official OpenAI API reference. In fact, the first example in this reference (the one with get_horoscope) does not use streaming. https://platform.openai.com/docs/guides/function-calling

<!-- gh-comment-id:3378552052 --> @mramendi commented on GitHub (Oct 7, 2025): Your explanation does not reflect the official OpenAI API reference. In fact, the first example in this reference (the one with `get_horoscope`) does not use streaming. https://platform.openai.com/docs/guides/function-calling
Author
Owner

@rgaricano commented on GitHub (Oct 7, 2025):

Yes, there is an issue, the tool is called, the response is OK but isn't showed and chat is stucked

Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.418 | INFO     | uvicorn.protocols.http.httptools_impl:send:476 - 79.116.185.68:0 - "POST /api/chat/completions HTTP/1.1" 200
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.408 | DEBUG    | open_webui.utils.chat:generate_chat_completion:167 - generate_chat_completion: {'stream': False, 'model': 'ollama1.cogito:8b', 'messages': [{'role': 'user', 'content': 'check chats'}], 'metadata': {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}, 'tools': {'check_chat_integrity': {'tool_id': 'check_chats', 'callable': <function Tools.check_chat_integrity at 0x7b97cc2f36a0>, 'spec': {'name': 'check_chat_integrity', 'description': '\n        Check and repair chat structural integrity.\n\n        ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}, 'validate_and_repair_chat': {'tool_id': 'check_chats', 'callable': <function Tools.validate_and_repair_chat at 0x7b97cc2f3100>, 'spec': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}}}, 'options': {}, 'tools': [{'type': 'function', 'function': {'name': 'check_chat_integrity', 'description': '\n        Check and repair chat structural integrity.\n\n        ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}}, {'type': 'function', 'function': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}}]}
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: Final events: []
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: Final metadata: {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}, 'tools': {'check_chat_integrity': {'tool_id': 'check_chats', 'callable': <function Tools.check_chat_integrity at 0x7b97cc2f36a0>, 'spec': {'name': 'check_chat_integrity', 'description': '\n        Check and repair chat structural integrity.\n\n        ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}, 'validate_and_repair_chat': {'tool_id': 'check_chats', 'callable': <function Tools.validate_and_repair_chat at 0x7b97cc2f3100>, 'spec': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}}}
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: Final form_data: {'stream': False, 'model': 'ollama1.cogito:8b', 'messages': [{'role': 'user', 'content': 'check chats'}], 'metadata': {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}, 'tools': {'check_chat_integrity': {'tool_id': 'check_chats', 'callable': <function Tools.check_chat_integrity at 0x7b97cc2f36a0>, 'spec': {'name': 'check_chat_integrity', 'description': '\n        Check and repair chat structural integrity.\n\n        ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}, 'validate_and_repair_chat': {'tool_id': 'check_chats', 'callable': <function Tools.validate_and_repair_chat at 0x7b97cc2f3100>, 'spec': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}}}, 'options': {}, 'tools': [{'type': 'function', 'function': {'name': 'check_chat_integrity', 'description': '\n        Check and repair chat structural integrity.\n\n        ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}}, {'type': 'function', 'function': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}}]}
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.398 | DEBUG    | open_webui.utils.middleware:process_chat_payload:1218 - direct_tool_servers=[]
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.397 | DEBUG    | open_webui.utils.middleware:process_chat_payload:1217 - tool_ids=['check_chats']
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.383 | WARNING  | open_webui.utils.oauth:get_oauth_token:654 - No OAuth session found for user 4ed44e79-97d7-4152-bf26-694cece387df, session ab706000-9e77-4f9a-872a-5d6ecbc8aabc
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.379 | DEBUG    | open_webui.utils.middleware:process_chat_payload:1029 - form_data: {'stream': False, 'model': 'ollama1.cogito:8b', 'messages': [{'role': 'user', 'content': 'check chats'}], 'tool_ids': ['check_chats'], 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'metadata': {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}}, 'options': {}}
Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.371 | INFO     | uvicorn.protocols.http.httptools_impl:send:476 - 79.116.185.68:0 - "GET /api/v1/folders/ HTTP/1.1" 200

Image

<!-- gh-comment-id:3378816356 --> @rgaricano commented on GitHub (Oct 7, 2025): Yes, there is an issue, the tool is called, the response is OK but isn't showed and chat is stucked ``` Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.418 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 79.116.185.68:0 - "POST /api/chat/completions HTTP/1.1" 200 Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.408 | DEBUG | open_webui.utils.chat:generate_chat_completion:167 - generate_chat_completion: {'stream': False, 'model': 'ollama1.cogito:8b', 'messages': [{'role': 'user', 'content': 'check chats'}], 'metadata': {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}, 'tools': {'check_chat_integrity': {'tool_id': 'check_chats', 'callable': <function Tools.check_chat_integrity at 0x7b97cc2f36a0>, 'spec': {'name': 'check_chat_integrity', 'description': '\n Check and repair chat structural integrity.\n\n ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}, 'validate_and_repair_chat': {'tool_id': 'check_chats', 'callable': <function Tools.validate_and_repair_chat at 0x7b97cc2f3100>, 'spec': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}}}, 'options': {}, 'tools': [{'type': 'function', 'function': {'name': 'check_chat_integrity', 'description': '\n Check and repair chat structural integrity.\n\n ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}}, {'type': 'function', 'function': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}}]} Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: Final events: [] Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: Final metadata: {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}, 'tools': {'check_chat_integrity': {'tool_id': 'check_chats', 'callable': <function Tools.check_chat_integrity at 0x7b97cc2f36a0>, 'spec': {'name': 'check_chat_integrity', 'description': '\n Check and repair chat structural integrity.\n\n ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}, 'validate_and_repair_chat': {'tool_id': 'check_chats', 'callable': <function Tools.validate_and_repair_chat at 0x7b97cc2f3100>, 'spec': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}}} Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: Final form_data: {'stream': False, 'model': 'ollama1.cogito:8b', 'messages': [{'role': 'user', 'content': 'check chats'}], 'metadata': {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}, 'tools': {'check_chat_integrity': {'tool_id': 'check_chats', 'callable': <function Tools.check_chat_integrity at 0x7b97cc2f36a0>, 'spec': {'name': 'check_chat_integrity', 'description': '\n Check and repair chat structural integrity.\n\n ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}, 'validate_and_repair_chat': {'tool_id': 'check_chats', 'callable': <function Tools.validate_and_repair_chat at 0x7b97cc2f3100>, 'spec': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}, 'metadata': {'file_handler': False, 'citation': False}}}}, 'options': {}, 'tools': [{'type': 'function', 'function': {'name': 'check_chat_integrity', 'description': '\n Check and repair chat structural integrity.\n\n ', 'parameters': {'properties': {'chat_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'default': None, 'description': 'Specific chat ID to check (optional, if not provided checks all user chats)'}, 'skip': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'default': 0, 'description': 'Number of chats to skip for pagination (default: 0)'}}, 'type': 'object'}}}, {'type': 'function', 'function': {'name': 'validate_and_repair_chat', 'description': "Validate and repair a single chat's structural integrity.", 'parameters': {'properties': {'chat_data': {'additionalProperties': True, 'type': 'object'}}, 'required': ['chat_data'], 'type': 'object'}}}]} Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.398 | DEBUG | open_webui.utils.middleware:process_chat_payload:1218 - direct_tool_servers=[] Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.397 | DEBUG | open_webui.utils.middleware:process_chat_payload:1217 - tool_ids=['check_chats'] Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.383 | WARNING | open_webui.utils.oauth:get_oauth_token:654 - No OAuth session found for user 4ed44e79-97d7-4152-bf26-694cece387df, session ab706000-9e77-4f9a-872a-5d6ecbc8aabc Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.379 | DEBUG | open_webui.utils.middleware:process_chat_payload:1029 - form_data: {'stream': False, 'model': 'ollama1.cogito:8b', 'messages': [{'role': 'user', 'content': 'check chats'}], 'tool_ids': ['check_chats'], 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'metadata': {'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'chat_id': '1f965617-5c20-4f33-8be2-fd8d9e1d51d8', 'message_id': 'ec3ccf25-a7db-459c-9d2c-0e4b0d431f88', 'session_id': '96s6xs1FTyNt4xJhAAAt', 'filter_ids': [], 'tool_ids': ['check_chats'], 'tool_servers': [], 'files': None, 'features': {'image_generation': False, 'code_interpreter': False, 'web_search': False}, 'variables': {'{{USER_NAME}}': 'ricardo', '{{USER_LOCATION}}': 'Unknown', '{{CURRENT_DATETIME}}': '2025-10-07 23:39:41', '{{CURRENT_DATE}}': '2025-10-07', '{{CURRENT_TIME}}': '23:39:41', '{{CURRENT_WEEKDAY}}': 'Tuesday', '{{CURRENT_TIMEZONE}}': 'Europe/Madrid', '{{USER_LANGUAGE}}': 'es'}, 'model': {'id': 'ollama1.cogito:8b', 'name': 'cogito:8b', 'object': 'model', 'created': 1759872742, 'owned_by': 'ollama', 'ollama': {'name': 'cogito:8b', 'model': 'ollama1.cogito:8b', 'modified_at': '2025-09-08T06:11:24.914471522+02:00', 'size': 4920747948, 'digest': '75b508ddece134205c621b91237310024ca983027fb7f724c2032d106419bd1b', 'details': {'parent_model': '', 'format': 'gguf', 'family': 'llama', 'families': ['llama'], 'parameter_size': '8.0B', 'quantization_level': 'Q4_K_M'}, 'connection_type': 'external', 'urls': [1], 'expires_at': 10983243168}, 'connection_type': 'external', 'tags': [], 'info': {'id': 'ollama1.cogito:8b', 'user_id': '4ed44e79-97d7-4152-bf26-694cece387df', 'base_model_id': None, 'name': 'cogito:8b', 'params': {}, 'meta': {'profile_image_url': '/static/favicon.png', 'description': None, 'capabilities': {'vision': True, 'file_upload': True, 'web_search': True, 'image_generation': True, 'code_interpreter': True, 'citations': True, 'status_updates': True}, 'suggestion_prompts': None, 'tags': []}, 'access_control': None, 'is_active': True, 'updated_at': 1757618848, 'created_at': 1757618848}, 'actions': [], 'filters': [{'id': 'competence_tracker_filter', 'name': 'Competence Tracker Filter', 'description': 'Competence Tracker Filter', 'icon': None, 'has_user_valves': False}]}, 'direct': False, 'params': {'stream_delta_chunk_size': None, 'reasoning_tags': None, 'function_calling': 'native'}}, 'options': {}} Oct 07 23:39:18 ricardo-PC startssh.sh[1359497]: 2025-10-07 23:39:18.371 | INFO | uvicorn.protocols.http.httptools_impl:send:476 - 79.116.185.68:0 - "GET /api/v1/folders/ HTTP/1.1" 200 ``` ![Image](https://github.com/user-attachments/assets/70f6870b-f578-407b-9295-9546a4e2c1a2)
Author
Owner

@Classic298 commented on GitHub (Oct 8, 2025):

@mramendi your examples are for the responses API

<!-- gh-comment-id:3379659207 --> @Classic298 commented on GitHub (Oct 8, 2025): @mramendi your examples are for the responses API
Author
Owner

@mramendi commented on GitHub (Oct 9, 2025):

@Classic298 sure, here's ChatCompletions: https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models . Streaming is not even mentioned.

Loads of examples around such as https://github.com/john-carroll-sw/chat-completions-function-calling-examples/blob/master/func_get_weather.py .

It is simply not true that function calling in ChatCompletions is only for streaming.

<!-- gh-comment-id:3383773306 --> @mramendi commented on GitHub (Oct 9, 2025): @Classic298 sure, here's ChatCompletions: https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models . Streaming is not even mentioned. Loads of examples around such as https://github.com/john-carroll-sw/chat-completions-function-calling-examples/blob/master/func_get_weather.py . It is simply not true that function calling in ChatCompletions is only for streaming.
Author
Owner

@Classic298 commented on GitHub (Oct 9, 2025):

I researched again and it is my fault, indeed you are right. I have found a few articles that mentioned major issues if you disabled streaming in connection with native function calls, but these were obviously wrong. Reopening.

<!-- gh-comment-id:3384238354 --> @Classic298 commented on GitHub (Oct 9, 2025): I researched again and it is my fault, indeed you are right. I have found a few articles that mentioned major issues if you disabled streaming in connection with native function calls, but these were obviously wrong. Reopening.
Author
Owner

@tjbck commented on GitHub (Oct 9, 2025):

Intended. With streaming off it'll follow the existing API behaviour. Our docs should be updated for this instead to clearly mention this.

<!-- gh-comment-id:3387507317 --> @tjbck commented on GitHub (Oct 9, 2025): Intended. With streaming off it'll follow the existing API behaviour. Our docs should be updated for this instead to clearly mention this.
Author
Owner

@mramendi commented on GitHub (Oct 9, 2025):

@tjbck no it does not, please refer to the openai cookbook link I already published: https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models

<!-- gh-comment-id:3387720124 --> @mramendi commented on GitHub (Oct 9, 2025): @tjbck no it does not, please refer to the openai cookbook link I already published: https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models
Author
Owner

@rgaricano commented on GitHub (Oct 9, 2025):

@tjbck
Tim, but the chat stuck in this circunstance, as I tested & posted.
The tool is executed fine, without streaming, but the response is never displayed and the chat stuck with any error or notification.

<!-- gh-comment-id:3387805640 --> @rgaricano commented on GitHub (Oct 9, 2025): @tjbck Tim, but the chat stuck in this circunstance, as I tested & posted. The tool is executed fine, without streaming, but the response is never displayed and the chat stuck with any error or notification.
Author
Owner

@tjbck commented on GitHub (Oct 9, 2025):

@mramendi the tools are called from Open WebUI, it's literally how their chat completion API behaves. I'd appreciate if you could actually try using the chat completion endpoint and see the behaviour for yourself instead of referencing a post that has nothing to with this.

<!-- gh-comment-id:3387808125 --> @tjbck commented on GitHub (Oct 9, 2025): @mramendi the tools are called from Open WebUI, it's literally how their chat completion API behaves. I'd appreciate if you could actually try using the chat completion endpoint and see the behaviour for yourself instead of referencing a post that has nothing to with this.
Author
Owner

@tjbck commented on GitHub (Oct 9, 2025):

@rgaricano it's because if you turn off the stream it returns a tool call response. As per my message above, we do not "execute" the tool from our end to follow the existing API behaviour when the streaming if set to False. This IS an intended behaviour and will NOT be supported.

<!-- gh-comment-id:3387809287 --> @tjbck commented on GitHub (Oct 9, 2025): @rgaricano it's because if you turn off the stream it returns a tool call response. As per my message above, we do not "execute" the tool from our end to follow the existing API behaviour when the streaming if set to False. This **IS** an intended behaviour and will **NOT** be supported.
Author
Owner

@tjbck commented on GitHub (Oct 9, 2025):

@Classic298 was half correct here. This is not an "issue" and is a matter of how stream off should be "interpreted".

<!-- gh-comment-id:3387816973 --> @tjbck commented on GitHub (Oct 9, 2025): @Classic298 was half correct here. This is not an "issue" and is a matter of how stream off should be "interpreted".
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#34028