你可以通过以下几种方法去掉 Ollama 返回的 think 标签和内容:

1. 修改 Prompt(推荐)

在提问时明确要求模型不要返回思考过程,例如:

请直接回答,不要包含任何思考过程或think标签。
[你的问题]

2. 使用 format 参数(如果 Ollama 支持)

某些 API 支持 formatresponse_format 参数,可以指定只返回纯文本:

ollama run --format "text" [模型名称] [你的问题]

3. 后处理输出

grepsedjq(JSON 输出时)过滤掉不需要的内容:

# 使用 grep 排除包含 think 的行
ollama run [模型名称] [你的问题] | grep -v "think:"

# 使用 sed 删除 think 标签内容
ollama run [模型名称] [你的问题] | sed '/think:/d'

4. 修改模型配置(高级)

如果是自托管模型,可以尝试修改模型的模板文件(Modelfile),移除或注释掉相关指令:

# 在 Modelfile 中移除可能触发 think 标签的模板指令
TEMPLATE """
[你的问题]
"""

5. API 调用时指定参数

如果通过 API 调用,尝试添加 raw: true 或类似参数禁用中间输出:

curl -X POST http://localhost:11434/api/generate -d '{
  "model": "[模型名称]",
  "prompt": "[你的问题]",
  "options": { "raw": true }
}'

6. 更新 Ollama 版本

某些版本可能优化了输出,检查是否为最新版:

ollama pull [模型名称]  # 更新模型
ollama update          # 更新 Ollama 本身

选择最适合你使用场景的方法即可。通常方法 1 或 2 是最简单的解决方案。

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐