API 参考Google 兼容
扩展思考
Gemini Thinking API - Gemini 2.0 Flash Thinking 高级推理。思维链推理解决复杂数学、编程和分析问题。
扩展思考
Gemini 模型支持扩展思考功能,允许模型在生成响应前进行更深入的推理。这对于复杂问题解决、数学、编程和分析任务特别有用。
模型要求: 扩展思考功能在 Gemini 2.0 Flash Thinking 和 Gemini 3+ 模型上可用。
工作原理
通过在 generationConfig 中添加 thinkingConfig 来启用思考。模型将:
- 使用扩展推理在内部处理您的请求
- 可选择性地返回思考过程
- 提供更准确的最终答案
ThinkingConfig 参数
| 参数 | 类型 | 描述 |
|---|---|---|
includeThoughts | boolean | 是否在响应中包含思考过程 |
thinkingBudget | integer | 思考过程的 token 预算 |
thinkingLevel | string | 思考深度: MINIMAL, LOW, MEDIUM, HIGH |
示例
curl -X POST "https://api.uniterouter.ai/v1beta/models/gemini-2.0-flash-thinking-exp:generateContent" \
-H "Content-Type: application/json" \
-H "x-goog-api-key: $UNITEROUTER_API_KEY" \
-d '{
"contents": [
{
"role": "user",
"parts": [{"text": "解答:一列火车以60公里/小时的速度行驶2.5小时,然后以80公里/小时的速度行驶1.5小时,整个旅程的平均速度是多少?"}]
}
],
"generationConfig": {
"thinkingConfig": {
"includeThoughts": true,
"thinkingBudget": 2048,
"thinkingLevel": "HIGH"
}
}
}'import google.generativeai as genai
genai.configure(
api_key="your_uniterouter_api_key",
transport="rest",
client_options={"api_endpoint": "api.uniterouter.ai"}
)
model = genai.GenerativeModel("gemini-2.0-flash-thinking-exp")
response = model.generate_content(
"解答:一列火车以60公里/小时的速度行驶2.5小时,然后以80公里/小时的速度行驶1.5小时,整个旅程的平均速度是多少?",
generation_config={
"thinkingConfig": {
"includeThoughts": True,
"thinkingBudget": 2048,
"thinkingLevel": "HIGH"
}
}
)
# 访问思考过程和响应
for part in response.candidates[0].content.parts:
if hasattr(part, 'thought') and part.thought:
print("思考过程:", part.text)
else:
print("答案:", part.text)import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("your_uniterouter_api_key", {
baseUrl: "https://api.uniterouter.ai"
});
const model = genAI.getGenerativeModel({
model: "gemini-2.0-flash-thinking-exp",
generationConfig: {
thinkingConfig: {
includeThoughts: true,
thinkingBudget: 2048,
thinkingLevel: "HIGH"
}
}
});
const result = await model.generateContent(
"解答:一列火车以60公里/小时的速度行驶2.5小时,然后以80公里/小时的速度行驶1.5小时,整个旅程的平均速度是多少?"
);
console.log(result.response.text());思考级别
| 级别 | 描述 | 适用场景 |
|---|---|---|
MINIMAL | 快速、表层推理 | 简单问题 |
LOW | 基础推理 | 标准任务 |
MEDIUM | 中等深度 | 复杂问题 |
HIGH | 深度、彻底推理 | 数学、编程、分析 |
响应格式
当 includeThoughts 为 true 时,响应包含思考部分:
{
"candidates": [
{
"content": {
"parts": [
{
"thought": true,
"text": "让我一步步分解这个问题..."
},
{
"text": "整个旅程的平均速度是 67.5 公里/小时。"
}
],
"role": "model"
}
}
]
}支持的模型
| 模型 | 思考支持 |
|---|---|
gemini-2.0-flash-thinking-exp | ✅ 完全支持 |
gemini-2.5-pro | ✅ 完全支持 |
gemini-2.5-flash | ✅ 完全支持 |
gemini-3-pro | ✅ 支持 thinkingLevel |
最佳实践
- 使用适当的思考级别 - 更高级别使用更多 token 但提供更好的推理
- 设置思考预算 - 使用
thinkingBudget控制 token 使用 - 审查思考过程 - 开发时启用
includeThoughts以了解模型推理 - 匹配任务复杂度 - 简单任务不需要
HIGH思考级别
Token 使用
思考 token 在使用元数据中单独计算:
{
"usageMetadata": {
"promptTokenCount": 50,
"candidatesTokenCount": 200,
"thinkingTokenCount": 500,
"totalTokenCount": 750
}
}相关文档
How is this guide?