Skip to main content
Anthropic Claude 是一款非常強大的 AI 對話系統,只要輸入提示詞,就能在短短幾秒內生成流暢自然的回覆。Claude Messages API 是 Anthropic 官方原生的 API 格式,與 OpenAI 兼容格式(Chat Completion)不同,它採用 Anthropic 自有的請求和響應結構,能夠更好地利用 Claude 的獨特能力,如多模態內容輸入、工具調用、深度思考(Extended Thinking)等高級特性。 本文檔主要介紹 Claude Messages API 操作的使用流程,利用它我們可以使用與 Anthropic 官方一致的原生接口來調用 Claude 的對話功能。

申請流程

要使用 Claude Messages API,首先可以到 Claude Messages API 頁面點擊「Acquire」按鈕,獲取請求所需要的憑證: 如果你尚未登錄或註冊,會自動跳轉到登錄頁面邀請您來註冊和登錄,登錄註冊之後會自動返回當前頁面。 在首次申請時會有免費額度贈送,可以免費使用該 API。

基本使用

Claude Messages API 的請求路徑為 /v1/messages,與 Anthropic 官方 API 保持一致。我們至少需要提供三個必填參數:
  • model:選擇使用的 Claude 模型,如 claude-opus-4-20250514claude-sonnet-4-20250514 等。
  • messages:輸入的消息數組,每條消息包含 role(角色)和 content(內容),其中 role 支持 userassistant
  • max_tokens:最大輸出 token 數,用於限制單次回覆的長度。
常用可選參數:
  • system:系統提示詞,用於設定模型的行為和角色。
  • temperature:生成隨機性,0-1 之間,值越大回覆越發散。
  • stream:是否使用流式響應,設為 true 可實現逐字返回效果。
  • stop_sequences:自定義停止序列,模型遇到這些文本時會停止生成。
  • top_p:核採樣參數,與 temperature 配合控制生成的隨機性。
  • top_k:僅從概率最高的 K 個選項中採樣。
  • tools:工具定義,用於讓模型調用外部函數。
  • tool_choice:控制模型如何使用提供的工具。

cURL 示例

Python 示例

調用之後,返回結果如下:
返回結果字段說明:
  • id:本次消息的唯一標識符。
  • type:始終為 message
  • role:始終為 assistant
  • content:回覆內容數組,每個元素包含 type(如 text)和對應的內容。
  • model:處理請求的模型名稱。
  • stop_reason:停止原因,可能的值包括 end_turn(正常結束)、max_tokens(達到最大長度)、stop_sequence(遇到停止序列)、tool_use(工具調用)。
  • stop_sequence:如果因自定義停止序列而停止,顯示匹配的停止序列文本。
  • usage:token 使用統計,包含 input_tokens(輸入 token 數)和 output_tokens(輸出 token 數)。

系統提示詞

Claude Messages API 支持通過 system 字段設定系統提示詞,用於定義模型的行為、角色和上下文。

Python 示例

通過設置 system 提示詞,可以精確地控制 Claude 的角色和行為方式。

流式響應

該接口也支持流式響應,將 stream 參數設為 true 即可獲得逐步返回的效果,非常適合在網頁中實現逐字顯示。

Python 示例

流式響應以 Server-Sent Events (SSE) 格式返回,每行以 event:data: 為前綴。流式事件類型包括:
  • message_start:消息開始,包含消息的基本信息和模型名稱。
  • content_block_start:內容塊開始。
  • content_block_delta:內容塊增量更新,包含新生成的文本片段。
  • content_block_stop:內容塊結束。
  • message_delta:消息級別的增量更新,包含 stop_reason 和最終的 usage 信息。
  • message_stop:消息結束。
輸出效果如下:
可以看到,流式響應中 content_block_delta 事件包含了逐步生成的文本內容,通過拼接所有 text_delta 即可獲得完整回覆。

JavaScript 示例

多輪對話

如果您想要對接多輪對話功能,需要在 messages 陣列中交替排列 userassistant 角色的消息,將之前的對話歷史一併傳入。

Python 示例

返回結果如下:
通過在 messages 中傳遞完整的對話歷史,Claude 可以結合上下文進行準確的回答。

深度思考模型

Claude 支持 Extended Thinking(深度思考)功能,可以讓模型在回覆之前先進行內部推理,提升處理複雜問題的準確性。使用該功能時需要傳入 thinking 參數。

Python 示例

返回結果如下:
可以看到,content 陣列中包含了兩個內容塊:
  • type: "thinking":模型的內部思考過程,展示了推理步驟。
  • type: "text":最終的回答結果。
注意事項:
  • 使用 thinking 時,max_tokens 需要大於 budget_tokens,因為 budget_tokens 是分配給思考過程的 token 預算。
  • budget_tokens 越大,模型進行更深入推理的空間越大,適合處理複雜問題。

視覺模型

Claude 支持多模態輸入,可以同時處理文本和圖像。在 Messages API 中,通過將 content 設為陣列格式,並傳入圖像內容塊即可使用視覺能力。

使用 Base64 編碼圖像

使用 URL 圖像

cURL 示例

支持的圖片格式包括:image/jpegimage/pngimage/gifimage/webp 返回結果示例:

工具調用(Tool Use)

Claude Messages API 原生支持工具調用功能,允許模型在需要時調用您預定義的工具/函數。

Python 示例

當模型決定調用工具時,返回結果中 content 會包含 tool_use 類型的內容塊:
注意 stop_reasontool_use,表示模型需要調用工具。收到該結果後,您需要執行工具函數並將結果以 tool_result 的形式回傳給模型:
模型會基於工具返回的結果,生成最終的自然語言回覆。

與 Chat Completion API 的區別

Ace Data Cloud 同時提供兩種 Claude API 格式,兩者的主要區別如下: 如果您的系統已經對接了 OpenAI 格式的 API,可以使用 Chat Completion API 來無縫切換。如果您需要使用 Claude 的全部原生能力,建議使用 Messages API。

錯誤處理

在調用 API 時,如果遇到錯誤,API 會返回相應的錯誤代碼和信息。例如:
  • 400 token_mismatched:錯誤請求,可能是由於缺少或無效的參數。
  • 400 api_not_implemented:錯誤請求,可能是由於缺少或無效的參數。
  • 401 invalid_token:未授權,無效或缺少授權令牌。
  • 429 too_many_requests:請求過多,您已超過速率限制。
  • 500 api_error:內部伺服器錯誤,伺服器出現問題。

錯誤響應示例

結論

通過本文檔,您已經了解了如何使用 Claude Messages API 以 Anthropic 原生格式調用 Claude 的對話功能。Messages API 支持基本對話、系統提示詞、流式響應、多輪對話、深度思考、視覺理解和工具調用等豐富功能。如有任何問題,請隨時聯繫我們的技術支持團隊。