Ollama最新版本 v0.9.0 引入了思考(Thinking)控制功能,让用户能够控制AI模型的推理过程,这为AI应用开发带来了全新的体验。本文将详细介绍如何使用这一强大功能。
什么是思考功能?
思考功能允许AI模型在给出最终答案之前,先展示其内部的推理过程。这就像是让AI"开口思考",用户可以看到模型是如何一步步分析问题并得出结论的。
支持思考功能的模型
ollama 目前支持思考功能的模型包括:
-
• DeepSeek R1 - 推理能力强大的开源模型 -
• Qwen 3 - 阿里巴巴推出的多语言大模型 -
• 更多模型正在陆续支持中
CLI命令行使用方法
基础控制命令
启用思考功能:
# 使用参数启用
ollama run deepseek-r1 --think "9.9和9.11哪个更大?"
# 交互模式中启用
/set think
禁用思考功能:
# 使用参数禁用
ollama run deepseek-r1 --think=false "快速计算10+23"
# 交互模式中禁用
/set nothink
脚本化使用
如果您想在脚本中使用思考模型但只看结果,可以使用 --hidethinking
参数:
ollama run deepseek-r1:8b --hidethinking "草莓这个词里有几个r?"
API调用示例
REST API调用
Ollama的API完全支持思考功能,通过 think
参数控制:
curl http://localhost:11434/api/chat -d '{
"model": "deepseek-r1",
"messages": [
{
"role": "user",
"content": "解释一下量子纠缠的原理"
}
],
"think": true,
"stream": false
}'
响应格式:
{
"model":"deepseek-r1",
"message":{
"role":"assistant",
"content":"量子纠缠是指两个或多个粒子...",
"thinking":"用户询问量子纠缠原理,我需要从基础概念开始解释...",
"done_reason":"stop"
}
}
Java集成库支持情况
需要特别注意的是,目前主流的Java AI集成库对Ollama 0.9的思考功能支持还不完善:
-
• Spring AI - 暂未支持 think
属性 -
• LangChain4j - 暂未支持 think
属性
如果您在Java项目中需要使用思考功能,建议直接使用HTTP客户端调用Ollama的REST API:
Modelfile高级配置
Qwen3模型的无缝思维链控制
笔者在之前的分享中发现,Qwen3模型有一个独特的能力:可以通过在提示词中携带 /nothink
关键字来控制是否进行深度推理。我们可以巧妙地利用Modelfile的TEMPLATE功能,在不修改后端代码的情况下,自动为用户提交的prompt添加控制指令。
创建默认禁用思考的Qwen3模型
FROM qwen3:latest
TEMPLATE """
...
{{- if eq .Role "user" }}
<|im_start|>user
/nothink {{ .Content }}<|im_end|> # change this line
{{ else if eq .Role "assistant" }}<|im_start|>assistant
...
"""
创建并使用模型:
ollama create qwen3-fast -f ./Modelfile
ollama run qwen3-fast "解释一下机器学习的基本概念"
这样创建的模型会自动在每个用户输入前添加 /nothink
,实现默认快速响应模式。
更多Ollama使用技巧和最新功能,请关注我们的技术分享。
参考资源
[1]
Ollama官方博客: https://ollama.com/blog/thinking[2]
Ollama官方文档: https://ollama.com/docs

PIG AI 新版来袭:AI能力全面升级
Spring AI Observations:让AI应用监控变得简单高效
重磅!Nacos 3.0 新增第三大核心功能,开箱即用的分布式锁方案
2025-05-30
2025-05-28
2025-05-26
2025-05-23
2025-05-21
Spring AI 1.0 正式发布!AI 开发从未如此简单,不懂它的三层开发模式你就输麻了!