推論モデル
一部の 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: 内部推論トークンを使用します
- Anthropic Claude:
thinkingコンテンツブロックを使用します - DeepSeek R1: コンテンツ内の
<think>タグを使用します
- 推論モデルは複雑なタスクで一般に良好な結果を生成します
- より多くのトークンを使用します(推論トークンもカウントされます)
- Temperature が制限される場合があります(一部の推論モデルは無視します)
- すべてのプロバイダーが推論に対応しているわけではありません —
capabilities.reasoningを確認してください