/v1/messages)呼叫時,響應結構與 OpenAI 相容格式完全不同:正文是按型別區分的 content 塊陣列,流式則用 Anthropic 的具名事件 SSE 協議。本頁講清兩種模式怎麼解析。
請求側(端點、
anthropic-version 頭、x-api-key 鑑權、effort / thinking 引數)見 Claude API 基礎說明 與 Claude Effort 思考指南。本頁只講響應側。示例用輕量模型 claude-haiku-4-5-20251001。非流式響應
頂層是一個message 物件,正文在 content 陣列裡,按 type 區分塊:
content 陣列——不能像 OpenAI 那樣直接取一個字串欄位:
stop_reason 取值:end_turn(正常結束)、max_tokens(被 max_tokens 截斷,正文可能為空,調大即可)、stop_sequence、tool_use(要呼叫工具)。開啟思考後,content 數組裡會多出 type: "thinking" 的塊,排在 text 塊之前。流式響應(具名事件 SSE)
Claude 流式用的是 Anthropic 事件協議:每條訊息有event: 名稱 + data: 負載,需要按事件型別分發,而不是像 OpenAI 那樣每塊都同構。
解析的核心是累加
content_block_delta 裡的 text_delta:
開啟思考(adaptive thinking)時,會先出現
type: "thinking" 的內容塊,其增量是 thinking_delta,並在塊結束前出現一個 signature_delta(思考塊簽名)。展示思考時把 thinking_delta 與 text_delta 分流渲染即可。思考用法見 Claude Effort 思考指南。與 OpenAI 相容格式的關鍵差異
usage 與計費
- 非流式:
usage隨結果返回,含input_tokens、output_tokens、cache_creation_input_tokens、cache_read_input_tokens。 - 流式:
input_tokens在message_start,最終output_tokens在message_delta,需兩處合併。 - 快取命中欄位(
cache_read_input_tokens)的折扣與用法見 Claude 快取計費。
相關連結
- 同組頁面:Claude API 基礎說明 · Claude 快取計費 · Claude Effort 思考指南
- 相容格式對照:OpenAI 相容模式響應資料處理
- 獲取 / 管理令牌:
https://api.apiyi.com/token