Ollama Thinking 功能发布

Ollama 引入了一项新功能,允许用户启用或禁用受支持 AI 模型的“思考”过程。此次更新为模型处理信息的方式提供了灵活性,使用户能够选择查看与最终答案分离的内部推理步骤(思考),或者在没有推理开销的情况下直接接收响应。

Supported Models

Ollama 已为以下模型实现了这一能力:

  • DeepSeek R1: 完全支持。
  • Qwen 3: 完全支持。
  • 更多模型将被添加到 thinking models 类别中。

CLI Implementation and Usage

在 Ollama CLI 中,思考功能默认是启用的。用户可以使用特定的标志和命令来控制此行为:

Command Line Flags

  • Enable Thinking: 使用 --think 标志。
  • Disable Thinking: 使用 --think=false 标志。

Interactive Sessions

在活跃的聊天会话中,用户可以使用以下斜杠命令来切换思考功能:

  • Enable: /set think
  • Disable: /set nothink

Scripting and Output Filtering

对于希望模型执行其推理过程但不想在输出中显示推理文本的用户,可以使用 --hidethinking 命令。例如:

ollama run deepseek-r1:8b --hidethinking "is 9.9 bigger or 9.11?"

API Integration

/api/generate/api/chat 接口均已更新,以包含一个新的 think 参数。该参数接受一个布尔值(truefalse)。

think 设置为 true 时,API 响应会将模型的思考过程与最终内容分离。这允许开发者构建自定义用户界面,例如在 GUI 中为思考过程制作动画,或为游戏中的 NPC 创建“思考气泡”。当设置为 false 时,模型将跳过思考过程并直接输出内容。

Library Support

Ollama 已更新其官方库以支持新的 think 参数:

Python Library

用户可以通过向 chat 函数传递 think=True 来启用思考功能。响应对象随后将包含独立的 response.message.thinkingresponse.message.content 字段。

JavaScript Library

与 Python 库类似,JavaScript 库在 chat 方法中支持 think: true 选项。它还支持流式响应,允许开发者通过监控流中的 chunk.message.thinkingchunk.message.content 字段,来检测模型何时从 thinking 状态切换到 content 状态。

Sources

相关

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch