推理模型
部分 AI 模型支持扩展思考(思维链推理),在给出最终答案前展示推理过程。
| Model | Provider | Reasoning |
|---|---|---|
| o1, o1-mini, o3 | OpenAI | Extended thinking |
| Claude 3.5 Sonnet | Anthropic | Extended thinking |
| DeepSeek R1 | DeepSeek | Chain-of-thought |
| Gemini 2.0 Flash Thinking | Thinking mode |
推理模型通过相同 API 使用。主要区别是流式时可能发出 ThinkingDelta 事件:
let mut stream = client.chat() .user("Solve this step by step: What is 127 * 43?") .stream() .execute_stream() .await?;
while let Some(event) = stream.next().await { match event? { StreamingEvent::ThinkingDelta { text, .. } => { // Model's reasoning process print!("[thinking] {text}"); } StreamingEvent::ContentDelta { text, .. } => { // Final answer print!("{text}"); } _ => {} }}Python
Section titled “Python”async for event in client.chat() \ .user("Solve this step by step: What is 127 * 43?") \ .stream(): if event.is_thinking_delta: print(f"[thinking] {event.text}", end="") elif event.is_content_delta: print(event.as_content_delta.text, end="")- 提供商清单声明
capabilities.reasoning: true - 流式解码器识别与思考相关的事件
- EventMapper 为推理内容发出
ThinkingDelta ContentDelta事件包含最终答案
协议清单处理提供商特定的格式差异:
- OpenAI o1:使用内部推理 tokens
- Anthropic Claude:使用
thinking内容块 - DeepSeek R1:在内容中使用
<think>标签
- 推理模型通常对复杂任务表现更好
- 会消耗更多 tokens(推理 tokens 会被计费)
- 可能限制 temperature(部分推理模型会忽略该参数)
- 并非所有提供商都支持推理 — 请检查
capabilities.reasoning