非Openai系列的模型如何开启深度思考
本文档介绍如何在Bella OpenAPI中为不同的AI模型开启深度思考功能。深度思考功能允许模型在生成最终答案前进行 内部推理,从而提供更准确、更深入的回答。
概述
Bella OpenAPI支持多个AI提供商的深度思考功能,通过统一的OpenAI协议reasoning_effort
参数进行控制。系统会根据不同的模型协议自动转换为相应的原生参数格式。
支持的模型和协议
1. Claude系列 (AWS Bedrock)
支持的模型:
claude-3.7-sonnet
claude-4-sonnet
- 其他支持推理的Claude模型版本
实现方式:
- 通过
reasoning_effort
参数或将reasoning_effort
配置参数Claude模型协议的thinking
2. 通义千问系列 (Qwen)
支持的模型:
qwen3-235b-a22b
qwq-plus
- 其他支持思考模式的Qwen模型
实现方式:
- 通过
reasoning_effort
参数或enable_thinking
参数开启思考模式
3. Gemini系列 (Google)
支持的模型:
gemini-2.5-pro
- 其他支持思考功能的Gemini模型
实现方式:
- 通过标准协议的
reasoning_effort
参数或extra_body
中的Google特定思考配置
4. DeepSeek系列
支持的模型:
deepseek-reasoner
(R1)
特殊说明:
- DeepSeek R1模型默认启用深度思考且不支持关闭
- 无需额外配置,模型会自动进行推理
5. 豆包系列 (Doubao)
状态: 暂未实现深度思考功能的开启/关闭控制
使用方法
标准协议方式
使用统一的reasoning_effort
参数,支持4个标准级别:null(不开启),low,medium,high
基础用法
- 支持所有可开启/关闭深度思考的模型
{
"model": "claude-4-sonnet",
"messages": [
{
"role": "user",
"content": "请解决这个复杂的数学问题:..."
}
],
"reasoning_effort": "medium"
}
支持的标准级别
"low"
: 低强度思考(对于claude模型:预算token: 2000)"medium"
: 中等强度思考(对于claude模型:预算token: 4000)"high"
: 高强度思考(对于claude模型:预算token: 8000)- 对于qwen和google系列模型,请求协议中只能控制是否开启,无法控制思考程度
各协议详细示例
1. Claude 深度思考
Claude协议方式:
{
"model": "claude-4-sonnet",
"messages": [
{
"role": "user",
"content": "请详细分析这个复杂的业务场景..."
}
],
"reasoning_effort": {
"type": "enabled",
"budget_tokens": 10000
}
}
2. 通义千问 深度思考
- 开启深度思考时只支持流式请求 通义千问协议方式:
{
"model": "qwen3-235b-a22b",
"messages": [
{
"role": "user",
"content": "请逐步推理解决这个逻辑问题..."
}
],
"enable_thinking": true,
"stream": true
}
3. Gemini 深度思考
google协议方式:
{
"model": "gemini-2.5-pro",
"messages": [
{
"role": "user",
"content": "请深入思考这个问题的解决方案..."
}
],
"extra_body": {
"google": {
"thinking_config": {
"include_thoughts": true
},
"thought_tag_marker": "think"
}
}
}
4. DeepSeek 深度思考
{
"model": "deepseek-reasoner",
"messages": [
{
"role": "user",
"content": "请分析这个复杂的技术问题..."
}
]
}
注:DeepSeek R1无需额外参数即可进行深度思考
流式响应中的深度思考
所有支持深度思考的模型都可以在流式响应中使用:
{
"model": "claude-4-sonnet",
"messages": [
{
"role": "user",
"content": "请逐步分析..."
}
],
"reasoning_effort": "medium",
"stream": true
}