Think parameter does not seem to work with Qwen3 #275

Closed
opened 2026-02-15 16:29:27 -05:00 by yindo · 8 comments
Owner

Originally created by @GuillaumeNachury on GitHub (Jun 6, 2025).

Originally assigned to: @drifkin on GitHub.

Based on this blog post https://ollama.com/blog/thinking the think parameter should be working with the Qwen3 model.

Using the latest version (0.5.1) of the lib:

pip show ollama
Name: ollama
Version: 0.5.1
Summary: The official Python client for Ollama.
Home-page: https://ollama.com
Author: 
Author-email: hello@ollama.com
License: 

Model: qwen3:14b

Then using the lib with streaming and tools but thinking disable
chat(self.default_model, messages, stream=True, think=False, tools=tools)

The <think>xxxxxx</think> block is always returned within the response.

Is there there a known issue with this combination of model+options (tool/stream/think) ?

Originally created by @GuillaumeNachury on GitHub (Jun 6, 2025). Originally assigned to: @drifkin on GitHub. Based on this blog post https://ollama.com/blog/thinking the `think` parameter should be working with the `Qwen3` model. Using the latest version (0.5.1) of the lib: ``` pip show ollama Name: ollama Version: 0.5.1 Summary: The official Python client for Ollama. Home-page: https://ollama.com Author: Author-email: hello@ollama.com License: ``` Model: `qwen3:14b` Then using the lib with streaming and tools but thinking disable `chat(self.default_model, messages, stream=True, think=False, tools=tools)` The `<think>xxxxxx</think>` block is always returned within the response. Is there there a known issue with this combination of model+options (tool/stream/think) ?
yindo closed this issue 2026-02-15 16:29:27 -05:00
Author
Owner

@michalmiki commented on GitHub (Jun 10, 2025):

I have encountered the same with qwen3:8b

@michalmiki commented on GitHub (Jun 10, 2025): I have encountered the same with qwen3:8b
Author
Owner

@EdwardBurgin commented on GitHub (Jun 18, 2025):

I have the same observation reproduced with both CURL, requests and python

ollama version is 0.9.1-rc0

Ollama as a systemd service.

client = Client(host = "http://localhost:11434/")
question = 'what is the capital of the UK?'
resp_fast = client.chat(
    model='qwen3:0.6b-q8_0', 
    messages = [{"role":"user", "content":question}], 
    think = False
)
@EdwardBurgin commented on GitHub (Jun 18, 2025): I have the same observation reproduced with both CURL, requests and python **ollama version is 0.9.1-rc0** Ollama as a systemd service. ```from ollama import Client client = Client(host = "http://localhost:11434/") question = 'what is the capital of the UK?' resp_fast = client.chat( model='qwen3:0.6b-q8_0', messages = [{"role":"user", "content":question}], think = False ) ```
Author
Owner

@EdwardBurgin commented on GitHub (Jun 19, 2025):

actually it seems they hard-coded 'think' to certain models, it works for deepseek-r1 (ie the 8b q4-km)

@EdwardBurgin commented on GitHub (Jun 19, 2025): actually it seems they hard-coded 'think' to certain models, it works for deepseek-r1 (ie the 8b q4-km)
Author
Owner

@mdrxy commented on GitHub (Jun 24, 2025):

@EdwardBurgin do you have any reference for this? Or just anecdotal testing?

@mdrxy commented on GitHub (Jun 24, 2025): @EdwardBurgin do you have any reference for this? Or just anecdotal testing?
Author
Owner

@mdrxy commented on GitHub (Jun 25, 2025):

@GuillaumeNachury @michalmiki @EdwardBurgin are any of you able to provide more information to assist reproducing the issue? In my testing, I'm not experiencing this under the conditions y'all have outlined, nor any other combination I can come up with. Running package ollama 0.5.1 and ollama: stable 0.9.2 (bottled), HEAD installed with Homebrew.

I've run, for both qwen3:8b and qwen3:14b, all with a tool provided:

  • think=False, stream=True
  • think=False, stream=False
  • think=True, stream=True
  • think=True, stream=False

Example for think=True, stream=True:

def add_two_numbers(a: int, b: int) -> int:
    """
    Add two numbers

    Args:
        a (set): The first number as an int
        b (set): The second number as an int

    Returns:
        int: The sum of the two numbers
    """
    return a + b


MODEL = "qwen3:14b"
messages = [{"role": "user", "content": "what is the capital of France?"}]

response: Iterator[ChatResponse] = chat(
    model=MODEL,
    messages=messages,
    tools=[add_two_numbers],
    stream=True,
    think=True,
)
responses: List[ChatResponse] = list(response)

assert len(responses) > 0, "No responses received from the model."
print(f"Full response: {responses}")
assert all(chunk.get("model") == MODEL for chunk in responses), (
    "Inconsistent model across chunks."
)
FULL_THINKING = ""
FULL_RESPONSE = ""
for chunk in responses:
    FULL_THINKING += (chunk.get("message") or {}).get("thinking") or ""
    FULL_RESPONSE += (chunk.get("message") or {}).get("content") or ""
assert FULL_THINKING, "No thinking in the response."
assert FULL_RESPONSE, "No content in the response."
display(Markdown(FULL_RESPONSE))

Full response:

Full response: [ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.049276Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='Okay', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.091722Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=',', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.134441Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.177265Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' user', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.219604Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' is', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.261555Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' asking', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.30326Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' for', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.345439Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.387287Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' capital', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.429277Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' of', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.471587Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' France', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.51381Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.55585Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' Let', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.598198Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' me', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.640389Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' check', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.682702Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.724971Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tools', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.767416Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' provided', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.809468Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.851463Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' The', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.893731Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' only', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.935855Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tool', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.978121Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' available', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.020448Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' is', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.062718Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.105072Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' add', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.147283Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='_two', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.189741Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='_numbers', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.232083Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' function', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.274489Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=',', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.316888Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' which', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.358452Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' adds', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.4003Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' two', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.442508Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' integers', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.484605Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.526074Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' That', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.56762Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'s", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.609588Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' not', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.651909Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' related', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.694294Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' to', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.736654Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' geography', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.779014Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' or', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.821313Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' capitals', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.863637Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.906043Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' Since', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.94838Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' there', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.990713Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'s", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.033175Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' no', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.075481Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' function', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.117809Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' that', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.160137Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' can', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.20256Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' retrieve', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.244825Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' capital', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.287041Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' city', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.329384Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' information', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.371363Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=',', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.413247Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' I', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.455421Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' can', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.49776Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'t", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.54004Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' use', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.582325Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' any', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.624737Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tool', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.667009Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' here', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.709402Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.751762Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' I', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.794071Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'ll", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.836336Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' need', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.878513Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' to', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.920636Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' inform', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.963085Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.005416Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' user', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.048035Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' that', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.090432Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' I', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.133003Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' don', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.175495Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'t", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.218119Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' have', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.260547Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.303117Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' necessary', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.34573Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tool', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.387373Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' to', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.431675Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' answer', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.47572Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' their', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.519837Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' question', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.564467Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.\n', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.697788Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='The', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.742248Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' function', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.786725Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' add', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.831521Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='_two', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.876029Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='_numbers', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.920649Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' is', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.964102Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' designed', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.006216Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' to', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.048334Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' add', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.091782Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' two', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.136124Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' integers', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.181364Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' and', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.22629Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' is', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.27116Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' not', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.315253Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' related', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.35767Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' to', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.400099Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' geography', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.442834Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' or', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.485336Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' capital', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.527414Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' cities', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.570059Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='.', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.612646Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' I', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.655533Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' don', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.698294Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content="'t", thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.741304Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' have', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.784161Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' access', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.828519Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' to', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.872695Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' external', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.916861Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' data', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.960808Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' about', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.004959Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' the', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.049314Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' capital', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.093191Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' of', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.135489Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' France', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.178056Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='.', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.220555Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' However', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.263154Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=',', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.305932Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' I', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.348623Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' can', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.391326Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' tell', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.433696Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' you', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.476255Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' that', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.518823Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' the', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.561685Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' capital', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.604468Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' of', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.647291Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' France', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.689994Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' is', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.732864Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' Paris', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.77565Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='.', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.818402Z', done=True, done_reason='stop', total_duration=6085772666, load_duration=26598416, prompt_eval_count=167, prompt_eval_duration=203379958, eval_count=138, eval_duration=5855280084, message=Message(role='assistant', content='', thinking=None, images=None, tool_calls=None))]

Plaintext:

The function add_two_numbers is designed to add two integers and is not related to geography or capital cities. I don't have access to external data about the capital of France. However, I can tell you that the capital of France is Paris.
@mdrxy commented on GitHub (Jun 25, 2025): @GuillaumeNachury @michalmiki @EdwardBurgin are any of you able to provide more information to assist reproducing the issue? In my testing, I'm not experiencing this under the conditions y'all have outlined, nor any other combination I can come up with. Running package `ollama 0.5.1` and `ollama: stable 0.9.2 (bottled), HEAD` installed with Homebrew. I've run, for both `qwen3:8b` and `qwen3:14b`, all with a tool provided: - `think=False`, `stream=True` - `think=False`, `stream=False` - `think=True`, `stream=True` - `think=True`, `stream=False` Example for `think=True`, `stream=True`: ```python def add_two_numbers(a: int, b: int) -> int: """ Add two numbers Args: a (set): The first number as an int b (set): The second number as an int Returns: int: The sum of the two numbers """ return a + b MODEL = "qwen3:14b" messages = [{"role": "user", "content": "what is the capital of France?"}] response: Iterator[ChatResponse] = chat( model=MODEL, messages=messages, tools=[add_two_numbers], stream=True, think=True, ) responses: List[ChatResponse] = list(response) assert len(responses) > 0, "No responses received from the model." print(f"Full response: {responses}") assert all(chunk.get("model") == MODEL for chunk in responses), ( "Inconsistent model across chunks." ) FULL_THINKING = "" FULL_RESPONSE = "" for chunk in responses: FULL_THINKING += (chunk.get("message") or {}).get("thinking") or "" FULL_RESPONSE += (chunk.get("message") or {}).get("content") or "" assert FULL_THINKING, "No thinking in the response." assert FULL_RESPONSE, "No content in the response." display(Markdown(FULL_RESPONSE)) ``` Full response: ```txt Full response: [ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.049276Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='Okay', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.091722Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=',', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.134441Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.177265Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' user', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.219604Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' is', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.261555Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' asking', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.30326Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' for', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.345439Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.387287Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' capital', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.429277Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' of', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.471587Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' France', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.51381Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.55585Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' Let', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.598198Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' me', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.640389Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' check', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.682702Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.724971Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tools', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.767416Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' provided', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.809468Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.851463Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' The', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.893731Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' only', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.935855Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tool', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:33.978121Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' available', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.020448Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' is', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.062718Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.105072Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' add', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.147283Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='_two', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.189741Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='_numbers', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.232083Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' function', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.274489Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=',', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.316888Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' which', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.358452Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' adds', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.4003Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' two', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.442508Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' integers', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.484605Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.526074Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' That', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.56762Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'s", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.609588Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' not', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.651909Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' related', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.694294Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' to', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.736654Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' geography', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.779014Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' or', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.821313Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' capitals', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.863637Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.906043Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' Since', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.94838Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' there', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:34.990713Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'s", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.033175Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' no', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.075481Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' function', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.117809Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' that', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.160137Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' can', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.20256Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' retrieve', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.244825Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' capital', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.287041Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' city', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.329384Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' information', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.371363Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=',', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.413247Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' I', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.455421Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' can', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.49776Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'t", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.54004Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' use', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.582325Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' any', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.624737Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tool', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.667009Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' here', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.709402Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.751762Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' I', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.794071Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'ll", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.836336Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' need', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.878513Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' to', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.920636Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' inform', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:35.963085Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.005416Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' user', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.048035Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' that', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.090432Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' I', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.133003Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' don', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.175495Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking="'t", images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.218119Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' have', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.260547Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' the', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.303117Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' necessary', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.34573Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' tool', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.387373Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' to', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.431675Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' answer', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.47572Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' their', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.519837Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking=' question', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.564467Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='', thinking='.\n', images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.697788Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='The', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.742248Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' function', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.786725Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' add', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.831521Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='_two', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.876029Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='_numbers', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.920649Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' is', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:36.964102Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' designed', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.006216Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' to', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.048334Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' add', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.091782Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' two', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.136124Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' integers', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.181364Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' and', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.22629Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' is', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.27116Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' not', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.315253Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' related', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.35767Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' to', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.400099Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' geography', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.442834Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' or', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.485336Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' capital', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.527414Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' cities', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.570059Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='.', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.612646Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' I', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.655533Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' don', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.698294Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content="'t", thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.741304Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' have', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.784161Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' access', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.828519Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' to', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.872695Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' external', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.916861Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' data', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:37.960808Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' about', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.004959Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' the', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.049314Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' capital', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.093191Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' of', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.135489Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' France', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.178056Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='.', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.220555Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' However', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.263154Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=',', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.305932Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' I', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.348623Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' can', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.391326Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' tell', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.433696Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' you', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.476255Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' that', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.518823Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' the', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.561685Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' capital', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.604468Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' of', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.647291Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' France', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.689994Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' is', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.732864Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content=' Paris', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.77565Z', done=False, done_reason=None, total_duration=None, load_duration=None, prompt_eval_count=None, prompt_eval_duration=None, eval_count=None, eval_duration=None, message=Message(role='assistant', content='.', thinking=None, images=None, tool_calls=None)), ChatResponse(model='qwen3:14b', created_at='2025-06-25T15:41:38.818402Z', done=True, done_reason='stop', total_duration=6085772666, load_duration=26598416, prompt_eval_count=167, prompt_eval_duration=203379958, eval_count=138, eval_duration=5855280084, message=Message(role='assistant', content='', thinking=None, images=None, tool_calls=None))] ``` Plaintext: ```txt The function add_two_numbers is designed to add two integers and is not related to geography or capital cities. I don't have access to external data about the capital of France. However, I can tell you that the capital of France is Paris. ```
Author
Owner

@michalmiki commented on GitHub (Jun 27, 2025):

I tweaked your code a little:


from typing import Iterator, List
from ollama import chat, ChatResponse



def add_two_numbers(a: int, b: int) -> int:
    """
    Add two numbers

    Args:
        a (set): The first number as an int
        b (set): The second number as an int

    Returns:
        int: The sum of the two numbers
    """
    return a + b


MODEL = "qwen3:14b"
messages = [{"role": "user", "content": "How are you?"}]

# Part 1: Test with streaming and thinking enabled
print("\n" + "="*50)
print("TEST 1: STREAMING WITH THINKING ENABLED (stream=True, think=True)")
print("="*50)

response_stream_with_thinking: Iterator[ChatResponse] = chat(
    model=MODEL,
    messages=messages,
    tools=[add_two_numbers],
    stream=True,
    think=True,
)
responses_stream_with_thinking: List[ChatResponse] = list(response_stream_with_thinking)

assert len(responses_stream_with_thinking) > 0, "No responses received from the model with thinking enabled."
print(f"Number of response chunks with thinking: {len(responses_stream_with_thinking)}")

FULL_THINKING_STREAM = ""
FULL_RESPONSE_STREAM_WITH_THINKING = ""
for chunk in responses_stream_with_thinking:
    FULL_THINKING_STREAM += (chunk.get("message") or {}).get("thinking") or ""
    FULL_RESPONSE_STREAM_WITH_THINKING += (chunk.get("message") or {}).get("content") or ""

assert FULL_THINKING_STREAM, "No thinking in the response when thinking was enabled."
assert FULL_RESPONSE_STREAM_WITH_THINKING, "No content in the response when thinking was enabled."

# Print the parsed response and thinking
print("\nMODEL THINKING PROCESS (streaming):")
print("-"*50)
print(FULL_THINKING_STREAM)
print("\nMODEL RESPONSE (streaming with thinking enabled):")
print("-"*50)
print(FULL_RESPONSE_STREAM_WITH_THINKING)

# Part 2: Test with streaming but without thinking
print("\n" + "="*50)
print("TEST 2: STREAMING WITHOUT THINKING (stream=True, think=False)")
print("="*50)

response_stream_without_thinking: Iterator[ChatResponse] = chat(
    model=MODEL,
    messages=messages,
    tools=[add_two_numbers],
    stream=True,
    think=False,
)
responses_stream_without_thinking: List[ChatResponse] = list(response_stream_without_thinking)

assert len(responses_stream_without_thinking) > 0, "No responses received from the model without thinking."
print(f"Number of response chunks without thinking: {len(responses_stream_without_thinking)}")

FULL_RESPONSE_STREAM_WITHOUT_THINKING = ""
THINKING_STREAM_WITHOUT_FLAG = ""
for chunk in responses_stream_without_thinking:
    thinking = (chunk.get("message") or {}).get("thinking")
    if thinking:
        THINKING_STREAM_WITHOUT_FLAG += thinking
    FULL_RESPONSE_STREAM_WITHOUT_THINKING += (chunk.get("message") or {}).get("content") or ""

assert FULL_RESPONSE_STREAM_WITHOUT_THINKING, "No content in the response when thinking was disabled."

# Print the response without thinking
print("\nMODEL RESPONSE (streaming with thinking disabled):")
print("-"*50)
print(FULL_RESPONSE_STREAM_WITHOUT_THINKING)

# Check if thinking field exists when thinking is disabled
if THINKING_STREAM_WITHOUT_FLAG:
    print("\nWARNING: Thinking field found even though thinking was disabled!")
    print("-"*50)
    print(THINKING_STREAM_WITHOUT_FLAG)
else:
    print("\nConfirmed: No thinking field when thinking is disabled (streaming).")

# Part 3: Test without streaming but with thinking
print("\n" + "="*50)
print("TEST 3: NON-STREAMING WITH THINKING (stream=False, think=True)")
print("="*50)

response_nonstream_with_thinking = chat(
    model=MODEL,
    messages=messages,
    tools=[add_two_numbers],
    stream=False,
    think=True,
)

# For non-streaming, we get a single response object
print(f"Response type: {type(response_nonstream_with_thinking)}")

thinking_nonstream = (response_nonstream_with_thinking.get("message") or {}).get("thinking") or ""
response_nonstream_with_thinking_content = (response_nonstream_with_thinking.get("message") or {}).get("content") or ""

print("\nMODEL THINKING PROCESS (non-streaming):")
print("-"*50)
print(thinking_nonstream)

print("\nMODEL RESPONSE (non-streaming with thinking enabled):")
print("-"*50)
print(response_nonstream_with_thinking_content)

# Part 4: Test without streaming and without thinking
print("\n" + "="*50)
print("TEST 4: NON-STREAMING WITHOUT THINKING (stream=False, think=False)")
print("="*50)

response_nonstream_without_thinking = chat(
    model=MODEL,
    messages=messages,
    tools=[add_two_numbers],
    stream=False,
    think=False,
)

# Check if thinking field exists when thinking is disabled
thinking_nonstream_without_flag = (response_nonstream_without_thinking.get("message") or {}).get("thinking")
response_nonstream_without_thinking_content = (response_nonstream_without_thinking.get("message") or {}).get("content") or ""

print("\nMODEL RESPONSE (non-streaming with thinking disabled):")
print("-"*50)
print(response_nonstream_without_thinking_content)

if thinking_nonstream_without_flag:
    print("\nWARNING: Thinking field found even though thinking was disabled (non-streaming)!")
    print("-"*50)
    print(thinking_nonstream_without_flag)
else:
    print("\nConfirmed: No thinking field when thinking is disabled (non-streaming).")

# Compare all responses
print("\n" + "="*50)
print("COMPARISON OF ALL TESTS")
print("="*50)
print(f"1. Streaming with thinking - response length: {len(FULL_RESPONSE_STREAM_WITH_THINKING)} chars, thinking length: {len(FULL_THINKING_STREAM)} chars")
print(f"2. Streaming without thinking - response length: {len(FULL_RESPONSE_STREAM_WITHOUT_THINKING)} chars")
print(f"3. Non-streaming with thinking - response length: {len(response_nonstream_with_thinking_content)} chars, thinking length: {len(thinking_nonstream)} chars")
print(f"4. Non-streaming without thinking - response length: {len(response_nonstream_without_thinking_content)} chars")

and surprisingly this thing runs smoothly on my Mac mini but throws an error on Ubuntu VM with cuda.

==================================================
TEST 1: STREAMING WITH THINKING ENABLED (stream=True, think=True)
==================================================
Number of response chunks with thinking: 1
Traceback (most recent call last):
  File "/home/aibox/api/tests/unit/services/quick_ollama_test.py", line 46, in <module>
    assert FULL_THINKING_STREAM, "No thinking in the response when thinking was enabled."
AssertionError: No thinking in the response when thinking was enabled.
@michalmiki commented on GitHub (Jun 27, 2025): I tweaked your code a little: ```python from typing import Iterator, List from ollama import chat, ChatResponse def add_two_numbers(a: int, b: int) -> int: """ Add two numbers Args: a (set): The first number as an int b (set): The second number as an int Returns: int: The sum of the two numbers """ return a + b MODEL = "qwen3:14b" messages = [{"role": "user", "content": "How are you?"}] # Part 1: Test with streaming and thinking enabled print("\n" + "="*50) print("TEST 1: STREAMING WITH THINKING ENABLED (stream=True, think=True)") print("="*50) response_stream_with_thinking: Iterator[ChatResponse] = chat( model=MODEL, messages=messages, tools=[add_two_numbers], stream=True, think=True, ) responses_stream_with_thinking: List[ChatResponse] = list(response_stream_with_thinking) assert len(responses_stream_with_thinking) > 0, "No responses received from the model with thinking enabled." print(f"Number of response chunks with thinking: {len(responses_stream_with_thinking)}") FULL_THINKING_STREAM = "" FULL_RESPONSE_STREAM_WITH_THINKING = "" for chunk in responses_stream_with_thinking: FULL_THINKING_STREAM += (chunk.get("message") or {}).get("thinking") or "" FULL_RESPONSE_STREAM_WITH_THINKING += (chunk.get("message") or {}).get("content") or "" assert FULL_THINKING_STREAM, "No thinking in the response when thinking was enabled." assert FULL_RESPONSE_STREAM_WITH_THINKING, "No content in the response when thinking was enabled." # Print the parsed response and thinking print("\nMODEL THINKING PROCESS (streaming):") print("-"*50) print(FULL_THINKING_STREAM) print("\nMODEL RESPONSE (streaming with thinking enabled):") print("-"*50) print(FULL_RESPONSE_STREAM_WITH_THINKING) # Part 2: Test with streaming but without thinking print("\n" + "="*50) print("TEST 2: STREAMING WITHOUT THINKING (stream=True, think=False)") print("="*50) response_stream_without_thinking: Iterator[ChatResponse] = chat( model=MODEL, messages=messages, tools=[add_two_numbers], stream=True, think=False, ) responses_stream_without_thinking: List[ChatResponse] = list(response_stream_without_thinking) assert len(responses_stream_without_thinking) > 0, "No responses received from the model without thinking." print(f"Number of response chunks without thinking: {len(responses_stream_without_thinking)}") FULL_RESPONSE_STREAM_WITHOUT_THINKING = "" THINKING_STREAM_WITHOUT_FLAG = "" for chunk in responses_stream_without_thinking: thinking = (chunk.get("message") or {}).get("thinking") if thinking: THINKING_STREAM_WITHOUT_FLAG += thinking FULL_RESPONSE_STREAM_WITHOUT_THINKING += (chunk.get("message") or {}).get("content") or "" assert FULL_RESPONSE_STREAM_WITHOUT_THINKING, "No content in the response when thinking was disabled." # Print the response without thinking print("\nMODEL RESPONSE (streaming with thinking disabled):") print("-"*50) print(FULL_RESPONSE_STREAM_WITHOUT_THINKING) # Check if thinking field exists when thinking is disabled if THINKING_STREAM_WITHOUT_FLAG: print("\nWARNING: Thinking field found even though thinking was disabled!") print("-"*50) print(THINKING_STREAM_WITHOUT_FLAG) else: print("\nConfirmed: No thinking field when thinking is disabled (streaming).") # Part 3: Test without streaming but with thinking print("\n" + "="*50) print("TEST 3: NON-STREAMING WITH THINKING (stream=False, think=True)") print("="*50) response_nonstream_with_thinking = chat( model=MODEL, messages=messages, tools=[add_two_numbers], stream=False, think=True, ) # For non-streaming, we get a single response object print(f"Response type: {type(response_nonstream_with_thinking)}") thinking_nonstream = (response_nonstream_with_thinking.get("message") or {}).get("thinking") or "" response_nonstream_with_thinking_content = (response_nonstream_with_thinking.get("message") or {}).get("content") or "" print("\nMODEL THINKING PROCESS (non-streaming):") print("-"*50) print(thinking_nonstream) print("\nMODEL RESPONSE (non-streaming with thinking enabled):") print("-"*50) print(response_nonstream_with_thinking_content) # Part 4: Test without streaming and without thinking print("\n" + "="*50) print("TEST 4: NON-STREAMING WITHOUT THINKING (stream=False, think=False)") print("="*50) response_nonstream_without_thinking = chat( model=MODEL, messages=messages, tools=[add_two_numbers], stream=False, think=False, ) # Check if thinking field exists when thinking is disabled thinking_nonstream_without_flag = (response_nonstream_without_thinking.get("message") or {}).get("thinking") response_nonstream_without_thinking_content = (response_nonstream_without_thinking.get("message") or {}).get("content") or "" print("\nMODEL RESPONSE (non-streaming with thinking disabled):") print("-"*50) print(response_nonstream_without_thinking_content) if thinking_nonstream_without_flag: print("\nWARNING: Thinking field found even though thinking was disabled (non-streaming)!") print("-"*50) print(thinking_nonstream_without_flag) else: print("\nConfirmed: No thinking field when thinking is disabled (non-streaming).") # Compare all responses print("\n" + "="*50) print("COMPARISON OF ALL TESTS") print("="*50) print(f"1. Streaming with thinking - response length: {len(FULL_RESPONSE_STREAM_WITH_THINKING)} chars, thinking length: {len(FULL_THINKING_STREAM)} chars") print(f"2. Streaming without thinking - response length: {len(FULL_RESPONSE_STREAM_WITHOUT_THINKING)} chars") print(f"3. Non-streaming with thinking - response length: {len(response_nonstream_with_thinking_content)} chars, thinking length: {len(thinking_nonstream)} chars") print(f"4. Non-streaming without thinking - response length: {len(response_nonstream_without_thinking_content)} chars") ``` and surprisingly this thing runs smoothly on my Mac mini but throws an error on Ubuntu VM with cuda. ``` ================================================== TEST 1: STREAMING WITH THINKING ENABLED (stream=True, think=True) ================================================== Number of response chunks with thinking: 1 Traceback (most recent call last): File "/home/aibox/api/tests/unit/services/quick_ollama_test.py", line 46, in <module> assert FULL_THINKING_STREAM, "No thinking in the response when thinking was enabled." AssertionError: No thinking in the response when thinking was enabled. ```
Author
Owner

@mdrxy commented on GitHub (Jun 27, 2025):

@michalmiki Just ran the code you provided, and all tests passed as expected for me. Is your Ollama client up to date (not just the package)?

> brew info ollama
Warning: Treating ollama as a formula. For the cask, use homebrew/cask/ollama-app or specify the `--cask` flag. To silence this message, use the `--formula` flag.
==> ollama: stable 0.9.2 (bottled), HEAD

Test response:

==================================================
TEST 1: STREAMING WITH THINKING ENABLED (stream=True, think=True)
==================================================
Number of response chunks with thinking: 69

MODEL THINKING PROCESS (streaming):
--------------------------------------------------
Okay, the user asked "How are you?" which is a common greeting. I need to respond appropriately. Since there's no function provided for greetings or general conversation, I should just reply naturally. I'll say I'm good and ask how they are. No tool calls needed here.


MODEL RESPONSE (streaming with thinking enabled):
--------------------------------------------------
I'm good, thanks! How are you?

==================================================
TEST 2: STREAMING WITHOUT THINKING (stream=True, think=False)
==================================================
Number of response chunks without thinking: 27

MODEL RESPONSE (streaming with thinking disabled):
--------------------------------------------------
I'm just a bot and don't have feelings, but I'm here to help you! How can I assist you today?

Confirmed: No thinking field when thinking is disabled (streaming).

==================================================
TEST 3: NON-STREAMING WITH THINKING (stream=False, think=True)
==================================================
Response type: <class 'ollama._types.ChatResponse'>

MODEL THINKING PROCESS (non-streaming):
--------------------------------------------------
Okay, the user asked "How are you?" which is a common greeting. I need to respond appropriately. Since there's no function provided for handling greetings or general conversation, I should just reply normally. The tools given only include the add_two_numbers function, which isn't relevant here. So I'll inform the user that I'm just a bot and don't have feelings, but I'm here to help with calculations if needed. That should cover it without needing any function calls.


MODEL RESPONSE (non-streaming with thinking enabled):
--------------------------------------------------
I'm just a bot, but I'm here to help! If you have any calculations or questions, feel free to ask. How can I assist you today? 😊

==================================================
TEST 4: NON-STREAMING WITHOUT THINKING (stream=False, think=False)
==================================================

MODEL RESPONSE (non-streaming with thinking disabled):
--------------------------------------------------
I'm just a chatbot and don't have feelings, but I'm here to help you! How can I assist you today?

Confirmed: No thinking field when thinking is disabled (non-streaming).

==================================================
COMPARISON OF ALL TESTS
==================================================
1. Streaming with thinking - response length: 30 chars, thinking length: 269 chars
2. Streaming without thinking - response length: 93 chars
3. Non-streaming with thinking - response length: 128 chars, thinking length: 472 chars
4. Non-streaming without thinking - response length: 97 chars
@mdrxy commented on GitHub (Jun 27, 2025): @michalmiki Just ran the code you provided, and all tests passed as expected for me. Is your Ollama client up to date (not just the package)? ```txt > brew info ollama Warning: Treating ollama as a formula. For the cask, use homebrew/cask/ollama-app or specify the `--cask` flag. To silence this message, use the `--formula` flag. ==> ollama: stable 0.9.2 (bottled), HEAD ``` **Test response:** ```txt ================================================== TEST 1: STREAMING WITH THINKING ENABLED (stream=True, think=True) ================================================== Number of response chunks with thinking: 69 MODEL THINKING PROCESS (streaming): -------------------------------------------------- Okay, the user asked "How are you?" which is a common greeting. I need to respond appropriately. Since there's no function provided for greetings or general conversation, I should just reply naturally. I'll say I'm good and ask how they are. No tool calls needed here. MODEL RESPONSE (streaming with thinking enabled): -------------------------------------------------- I'm good, thanks! How are you? ================================================== TEST 2: STREAMING WITHOUT THINKING (stream=True, think=False) ================================================== Number of response chunks without thinking: 27 MODEL RESPONSE (streaming with thinking disabled): -------------------------------------------------- I'm just a bot and don't have feelings, but I'm here to help you! How can I assist you today? Confirmed: No thinking field when thinking is disabled (streaming). ================================================== TEST 3: NON-STREAMING WITH THINKING (stream=False, think=True) ================================================== Response type: <class 'ollama._types.ChatResponse'> MODEL THINKING PROCESS (non-streaming): -------------------------------------------------- Okay, the user asked "How are you?" which is a common greeting. I need to respond appropriately. Since there's no function provided for handling greetings or general conversation, I should just reply normally. The tools given only include the add_two_numbers function, which isn't relevant here. So I'll inform the user that I'm just a bot and don't have feelings, but I'm here to help with calculations if needed. That should cover it without needing any function calls. MODEL RESPONSE (non-streaming with thinking enabled): -------------------------------------------------- I'm just a bot, but I'm here to help! If you have any calculations or questions, feel free to ask. How can I assist you today? 😊 ================================================== TEST 4: NON-STREAMING WITHOUT THINKING (stream=False, think=False) ================================================== MODEL RESPONSE (non-streaming with thinking disabled): -------------------------------------------------- I'm just a chatbot and don't have feelings, but I'm here to help you! How can I assist you today? Confirmed: No thinking field when thinking is disabled (non-streaming). ================================================== COMPARISON OF ALL TESTS ================================================== 1. Streaming with thinking - response length: 30 chars, thinking length: 269 chars 2. Streaming without thinking - response length: 93 chars 3. Non-streaming with thinking - response length: 128 chars, thinking length: 472 chars 4. Non-streaming without thinking - response length: 97 chars ```
Author
Owner

@michalmiki commented on GitHub (Jun 27, 2025):

Hey, yeah that solved the issue for me. Seems like you guys are updating it so fast that I missed one of the updates. Nice, updating Ollama (both python + linux package) solved issues for me. Sorry for bothering. Should have checked this earlier.

@michalmiki commented on GitHub (Jun 27, 2025): Hey, yeah that solved the issue for me. Seems like you guys are updating it so fast that I missed one of the updates. Nice, updating Ollama (both python + linux package) solved issues for me. Sorry for bothering. Should have checked this earlier.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ollama/ollama-python#275