思考 (Thinking)

思考功能让具备思考能力的模型在最终回答之外输出一段“思考”轨迹(reasoning trace)。
可以用来审计模型步骤、在 UI 中展示模型思路,或者在只需要最终答案时隐藏该轨迹。

支持的模型

  • Qwen 3
  • GPT-OSS(使用 think 等级:lowmediumhigh — 该模型无法完全禁用轨迹)
  • DeepSeek-v3.1
  • DeepSeek R1

可在思考模型下查看最新添加内容。

在 API 调用中启用思考

chat 中设置 think 字段。
大多数模型接受布尔值(true/false)。
GPT-OSS 需要传入 lowmediumhigh 以控制轨迹长度。
message.thinkingchat 端点)字段包含思考轨迹
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 设置为 lowmediumhigh
对该模型传入 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 替换为 mediumhigh):
  ollama run gpt-oss --think=low "Draft a headline"

注意
在 CLI 和 API 中,支持模型默认启用思考功能。

流式传输

在之前输出思考轨迹中使用了流式传输。
流式传输允许在模型生成文本时逐步渲染
通过 REST API 默认启用,但在 SDK 中默认禁用
要在 SDK 中启用流式传输,将 stream 参数设置为 True

关键流式概念

聊天:流式传输部分助手消息。每个块包含内容,便于在消息到达时渲染。
思考:支持“思考”能力的模型会在每个块中携带 thinking 字段。
检测该字段以在最终答案到达前显示或隐藏推理痕迹。
工具调用:监测每个块中的流式 tool_calls,执行请求的工具,并将工具输出附回对话中。

处理流式块

需要累积部分字段以维护对话历史。
这在工具调用场景中特别重要:模型的 thinking、模型发出的tool_call 以及执行工具得到的结果,必须在下一次请求中一并传回模型。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐