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,首先到 Ace Data Cloud 控制台 取得您的 API Token,留作備用。 如果你尚未登入或註冊,會自動跳轉到登入頁面邀請你註冊和登入,完成後會自動返回目前頁面。 一個 API Token 即可呼叫平台所有服務,無需為每個服務單獨申請。 首次申請會贈送免費額度,可免費體驗;額度不足時可在 控制台 儲值通用餘額。
📘 完整文件:Claude Messages API →

基本使用

Claude Messages API 的請求路徑為 /v1/messages,與 Anthropic 官方 API 保持一致。我們至少需要提供三個必填參數:
  • model:選擇使用的 Claude 模型。最新旗艦為 claude-fable-5-1(100 萬 Token 上下文、最大輸出 128K Token);原 claude-fable-5 仍相容保留。
  • 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:控制模型如何使用提供的工具。
  • cache_control:在請求的最後一個可快取內容區塊處自動建立快取斷點;也可寫在具體內容區塊上。

cURL 範例

Python 範例

呼叫之後,返回結果如下:
返回結果欄位說明:
  • id:本次訊息的唯一識別碼。
  • type:始終為 message
  • role:始終為 assistant
  • content:回覆內容陣列,每個元素包含 type(如 text)和對應的內容。
  • model:處理請求的模型名稱。
  • stop_reason:停止原因。穩定取值包括 end_turnmax_tokensstop_sequencetool_usepause_turn(可把目前 assistant 內容原樣回傳以繼續)、refusalmodel_context_window_exceeded
  • stop_sequence:如果因自訂停止序列而停止,顯示匹配的停止序列文字。
  • stop_details:當 stop_reasonrefusal 時,可能包含拒絕類別和說明。
  • usage:token 使用統計。input_tokens 是未快取輸入;cache_creation_input_tokenscache_read_input_tokens 分別是快取寫入與讀取;output_tokens 是全部輸出 token 數。若返回 output_tokens_details.thinking_tokens,該值是 output_tokens 的子集,計算總量或費用時不要再次相加。該明細沒有權威計數時可能為 null 或省略。
  • usage.cache_creation:可選的快取寫入 TTL 明細,包含 ephemeral_5m_input_tokensephemeral_1h_input_tokens。物件存在時,兩項之和等於 cache_creation_input_tokens;欄位為 null 或省略表示目前回應沒有可用的 TTL 拆分,不能按 0 解讀。
  • usage.cost:非串流回應可能包含 Ace Data Cloud 記錄的額度消耗物件,其中 amount 是本次實際消耗、currency 是計量單位,list_amount 是折扣前金額(如有)。Fable 5.1 的官方快取讀取基價為 0.25/百萬Token5分鐘與1小時快取寫入基價分別為0.25/百萬 Token,5 分鐘與 1 小時快取寫入基價分別為 12.50 和 $20/百萬 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 資訊。output_tokens_details.thinking_tokens 的權威值只應從最後一個 message_delta.usage 讀取,不要跨事件累加。
  • message_stop:訊息結束。
輸出效果如下:
可以看到,串流回應中的 content_block_delta 事件包含了逐步產生的文字內容,透過拼接所有 text_delta 即可獲得完整回覆。

JavaScript 範例

多輪對話

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

Python 範例

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

深度思考模型

Claude 的 thinking 與 thinking summary 是兩個不同概念:模型可以進行內部推理,但 API 不會回傳原始思維鏈。需要展示推理過程時,API 回傳的是經過處理的摘要。 目前模型建議使用 adaptive thinking,並透過 output_config.effort 控制整體推理投入:
回應中的 thinking 區塊形式如下:
  • display: "summarized" 回傳可讀的思考摘要;它不是原始思維鏈。
  • display: "omitted" 回傳 thinking: "",但仍保留 opaque signature 以支援後續對話。
  • Fable 5.1、Fable 5、Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 的 display 預設值為 omitted;Opus 4.6、Sonnet 4.6 及更早支援 thinking 的模型預設使用 summarized
  • Display 只影響回傳內容和串流延遲,不關閉推理,也不減少 thinking token 的計費。
  • 是否預設啟用 thinking 與 display 預設值是兩個獨立問題。Opus 5、Sonnet 5 預設啟用 adaptive thinking;對 Opus 5,省略 thinking 等同於 adaptive,省略 output_config.effort 等同於 high。Opus 4.8、4.7 和 4.6 需要明確啟用。
  • Thinking 與最終正文共同占用 max_tokens 輸出預算。預算過小時,thinking 可能占用大部分額度,使正文為空或被截斷;請提高 max_tokens,或使用 low / medium effort 控制推理投入。
  • 對允許關閉 thinking 的模型,可傳入 thinking: {"type":"disabled"};disabled 僅能與 lowmediumhigh 搭配,xhigh / max 會回傳 400。
  • budget_tokens 僅用於仍支援固定思考預算的舊模型。新模型應使用 thinking.type=adaptiveoutput_config.effort;Fable 5.1 的 thinking 始終開啟,不能明確關閉。
  • 多輪對話和工具呼叫時,應將 assistant 回傳的完整 thinking 區塊及 signature 原樣傳回;不要修改或自行產生 signature。
  • 部分相容路由無法無損處理 redacted_thinking 或明確關閉 thinking,此時會回傳參數錯誤,而不會靜默捨棄或改變請求語義。
串流請求中,summarized 會產生 thinking_deltaomitted 不產生 thinking_delta,只保留 thinking 區塊生命週期和 signature_delta

視覺模型

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

使用 Base64 編碼圖像

使用 URL 圖像

cURL 範例

支援的圖片格式包括:image/jpegimage/pngimage/gifimage/webp

文件與 PDF

PDF 使用 document 內容區塊,支援 Base64 與 URL 兩種穩定來源。Base64 來源必須使用 application/pdf
URL 來源寫作 {"type":"url","url":"https://example.com/report.pdf"}document 還支援 text/plain 與由 text/image 區塊組成的 content 來源;可選欄位包括 titlecontextcitations。Files API 的 file_id 來源屬於獨立 beta 功能,不在本介面的穩定契約內。

提示快取

頂層 cache_control 會自動把快取斷點放在最後一個可快取區塊上:
需要精確控制位置時,也可把同樣的 cache_control 寫在 text、image、document、tool_use、tool_result 內容區塊或工具定義上。ttl 支援 5m(預設)與 1h;請透過 usage.cache_creation_input_tokensusage.cache_read_input_tokens 判斷快取寫入與命中。 當回應提供 usage.cache_creation 時,ephemeral_5m_input_tokens + ephemeral_1h_input_tokens = cache_creation_input_tokens。若 cache_creationnull 或省略,表示只有快取寫入總量、沒有權威 TTL 拆分;此時不要將任一 bucket 當作已知的 0,計費和總量仍以 aggregate 欄位為準。 回傳結果範例:

工具呼叫(Tool Use)

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

Python 範例

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

與 Chat Completion API 的差異

Ace Data Cloud 同時提供兩種 Claude API 格式,兩者的主要差異如下: Messages API 的 usage.input_tokens 僅表示未快取輸入,cache_read_input_tokenscache_creation_input_tokens 是獨立計費分桶;三者會分別依對應價格計算。 如果您的系統已經串接了 OpenAI 格式的 API,可以使用 Chat Completion API 來無縫切換。如果您需要使用 Claude 的全部原生能力,建議使用 Messages API。

錯誤處理

公開介面的錯誤回應使用 Ace Data Cloud 平台 envelope:error.code 是穩定錯誤碼,error.message 是說明,trace_id 用於排查請求。常見 HTTP 狀態包括:
  • 400:請求參數或協定內容無效。
  • 401:授權權杖無效、缺失或過期。
  • 403:禁止存取、餘額不足或配額受限。
  • 404:API 或模型不存在。
  • 413:請求本文過大。
  • 429:請求過多。
  • 500 / 503 / 504:服務錯誤、暫時無法使用或處理逾時。

錯誤回應範例

該錯誤結構是 Ace Data Cloud 的執行階段契約,不等同於 Anthropic 官方錯誤 envelope;請依 HTTP 狀態與 error.code 處理。

結論

透過本文檔,您已經瞭解如何使用 Claude Messages API 以 Anthropic 原生格式呼叫 Claude 的對話功能。Messages API 支援基本對話、系統提示詞、串流回應、多輪對話、深度思考、視覺理解、PDF、提示快取和工具呼叫等豐富功能。如有任何問題,請隨時聯絡我們的技術支援團隊。