# Claude Sonnet 4.6 API 由 Anthropic 提供支援的 Claude Sonnet 4.6 大模型完整 API 參考。 ## 模型版本 此 API 支援兩種 Claude Sonnet 4.6 模型版本: | 模型 | ID | 描述 | |-------|----|-------------| | **Claude Sonnet 4.6 Text to Text** | `claude-sonnet-4.6-text-to-text` | 快速文字推理與寫作 | | **Claude Sonnet 4.6 File Analysis** | `claude-sonnet-4.6-file-analysis` | 使用 Claude Sonnet 進行檔案和圖像分析 | ## 快速比較 | 功能 | Text to Text | File Analysis | |---------|--------------|---------------| | 文字輸入 | 必填 ✅ | 可選 | | 圖像輸入 | 不支援 ❌ | 可選 | | 檔案輸入 | 不支援 ❌ | 可選 | | 串流回應 | SSE | SSE | | `max_tokens` | 可選 | 可選 | | `top_p` | 可選 | 可選 | | `top_k` | 可選 | 可選 | ## Claude Sonnet 4.6 Text to Text ### 端點 ```http POST /api/v1/chat/completions ``` ### 請求參數 #### 必填參數 | 參數 | 類型 | 描述 | |-----------|------|-------------| | `model` | string | 必須為 `"claude-sonnet-4.6-text-to-text"` | | `messages` | array | 有序訊息。請參閱 大模型 API 了解訊息結構。 | | `stream` | boolean | `true` 表示 SSE,`false` 表示單一 JSON 回應。 | #### 訊息支援 | 欄位 | 文字 | 檔案 | 圖像 | |-------|------|------|-------| | `messages` | 必填 ✅ | 不支援 ❌ | 不支援 ❌ | #### 可選 | 參數 | 類型 | 範圍 | 描述 | |-----------|------|-------|-------------| | `max_tokens` | integer | `1` - `64000` | 最大輸出 token 數。 | | `top_p` | number | `0.0` - `1.0` | 限制候選 token 的累積機率質量。 | | `top_k` | integer | `> 0` | 限制候選 token 的數量。 | ### 請求範例 ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'claude-sonnet-4.6-text-to-text', messages: [ { role: 'user', content: 'Write a concise product update for a developer audience.' } ], stream: true, max_tokens: 2048, top_p: 0.5, top_k: 50 }) }); ``` ## Claude Sonnet 4.6 File Analysis ### 端點 ```http POST /api/v1/chat/completions ``` ### 請求參數 #### 必填參數 | 參數 | 類型 | 描述 | |-----------|------|-------------| | `model` | string | 必須為 `"claude-sonnet-4.6-file-analysis"` | | `messages` | array | 有序訊息。請參閱 大模型 API 和 消息附件。 | | `stream` | boolean | `true` 表示 SSE,`false` 表示單一 JSON 回應。 | #### 訊息支援 | 欄位 | 文字 | 檔案 | 圖像 | |-------|------|------|-------| | `messages` | 可選 | 可選 | 可選 | #### 可選 | 參數 | 類型 | 範圍 | 描述 | |-----------|------|-------|-------------| | `max_tokens` | integer | `1` - `64000` | 最大輸出 token 數。 | | `top_p` | number | `0.0` - `1.0` | 限制候選 token 的累積機率質量。 | | `top_k` | integer | `> 0` | 限制候選 token 的數量。 | ### 請求範例 ```javascript const response = await fetch('https://api.flaq.ai/api/v1/chat/completions', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Accept': 'text/event-stream', 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'claude-sonnet-4.6-file-analysis', messages: [ { role: 'user', content: [ { type: 'text', text: 'Summarize this file and extract the key risks.' }, { type: 'file', file: { filename: 'demo.pdf', file_data: 'https://example.com/demo.pdf' } } ] } ], stream: true, max_tokens: 4096, top_p: 0.5, top_k: 50 }) }); ``` ## 回應格式 Claude Sonnet 4.6 大模型會返回 OpenAI 相容的 completion 回應。`stream: true` 時回應為 Server-Sent Events;`stream: false` 時回應為單一 JSON 物件。 ### 成功回應 ```text data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"claude-sonnet-4.6-file-analysis","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"claude-sonnet-4.6-file-analysis","choices":[{"index":0,"delta":{"content":"Here is a concise summary"},"finish_reason":null}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"claude-sonnet-4.6-file-analysis","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]} data: {"id":"chatcmpl-...","object":"chat.completion.chunk","created":1710000000,"model":"claude-sonnet-4.6-file-analysis","choices":[],"usage":{"prompt_tokens":12,"completion_tokens":8,"total_tokens":20}} data: [DONE] ``` ### 錯誤回應 ```text event: error data: {"error":{"message":"API requests too frequent, exceeding rate limit","type":"rate_limit_error","code":"1302","param":null}} ``` ## 最佳實務 1. **使用結構化訊息:** 透過 `messages[]` 傳送對話歷史,而不是把上下文壓平成一個 prompt。 2. **選擇正確的模型版本:** 僅文字推理與寫作使用 Text to Text,需要檔案或圖像時使用 File Analysis。 3. **謹慎調整 Claude 參數:** 支援 `top_p` 和 `top_k`,它們會影響輸出多樣性。 4. **消費 SSE 事件:** 追加 `choices[0].delta.content` 進行串流顯示,並使用 `data: [DONE]` 作為最終回應。 5. **僅傳送支援的輸入:** 目前客戶端中的 Text 模型會忽略不支援的檔案和圖像部分。