【Ollama】使用python进行思考和流式输出
本文介绍了在Ollama中,使用python进行思考和流式输出。
思考 (Thinking)
思考功能让具备思考能力的模型在最终回答之外输出一段“思考”轨迹(reasoning trace)。
可以用来审计模型步骤、在 UI 中展示模型思路,或者在只需要最终答案时隐藏该轨迹。
支持的模型
Qwen 3GPT-OSS(使用think等级:low、medium、high— 该模型无法完全禁用轨迹)DeepSeek-v3.1DeepSeek R1
可在思考模型下查看最新添加内容。
在 API 调用中启用思考
在 chat 中设置 think 字段。
大多数模型接受布尔值(true/false)。GPT-OSS 需要传入 low、medium 或 high 以控制轨迹长度。message.thinking(chat 端点)字段包含思考轨迹,
而 message.content / response 最终答案。
from ollama import chat
response = chat(
model='qwen3:0.6b',
messages=[{'role': 'user', 'content': 'strawberry有几个r?'}],
think=True,
stream=False,
)
print('思考中:\n', response.message.thinking)
print('答案:\n', response.message.content)
提示:
GPT-OSS要求think设置为low、medium或high。
对该模型传入true/false会被忽略。
流式输出思考轨迹
思考流会在答案令牌之前交错输出推理令牌。
检测到第一段 thinking chunk 后可以渲染“思考”部分,然后在收到 message.content 时切换到最终回复。
示例(Python):
from ollama import chat
stream = chat(
model='qwen3',
messages=[{'role': 'user', 'content': 'What is 17 × 23?'}],
think=True,
stream=True,
)
in_thinking = False
for chunk in stream:
if chunk.message.thinking and not in_thinking:
in_thinking = True
print('Thinking:\n', end='')
if chunk.message.thinking:
print(chunk.message.thinking, end='')
elif chunk.message.content:
if in_thinking:
print('\n\nAnswer:\n', end='')
in_thinking = False
print(chunk.message.content, end='')
CLI 快速参考
- 为单次运行启用思考:
ollama run deepseek-r1 --think "Where should I visit in Lisbon?"
- 禁用思考:
ollama run deepseek-r1 --think=false "Summarize this article"
- 使用思考模型但隐藏轨迹:
ollama run deepseek-r1 --hidethinking "Is 9.9 bigger or 9.11?"
- 交互会话中可用
/set think或/set nothink切换。 GPT-OSS仅接受等级(可将low替换为medium或high):
ollama run gpt-oss --think=low "Draft a headline"
注意
在 CLI 和 API 中,支持模型默认启用思考功能。
流式传输
在之前输出思考轨迹中使用了流式传输。
流式传输允许在模型生成文本时逐步渲染。
通过 REST API 默认启用,但在 SDK 中默认禁用。
要在 SDK 中启用流式传输,将 stream 参数设置为 True。
关键流式概念
聊天:流式传输部分助手消息。每个块包含内容,便于在消息到达时渲染。
思考:支持“思考”能力的模型会在每个块中携带 thinking 字段。
检测该字段以在最终答案到达前显示或隐藏推理痕迹。
工具调用:监测每个块中的流式 tool_calls,执行请求的工具,并将工具输出附回对话中。
处理流式块
需要累积部分字段以维护对话历史。
这在工具调用场景中特别重要:模型的 thinking、模型发出的tool_call 以及执行工具得到的结果,必须在下一次请求中一并传回模型。
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐

所有评论(0)