Claude Platform Docs
CLI、SDK 與函式庫函式庫與整合

OpenAI SDK 相容性

Anthropic 提供了一個相容層,讓您能夠使用 OpenAI SDK 來測試 Claude API。只需少量程式碼變更,您就可以快速評估 Anthropic 模型的能力。

開始使用 OpenAI SDK

要使用 OpenAI SDK 相容性功能,您需要:

  1. 使用官方的 OpenAI SDK
  2. 變更以下項目
    • 更新您的 base URL,使其指向 Claude API
    • 將您的 API 金鑰替換為 Claude API 金鑰
    • 如果您的金鑰是可存取多個工作區的個人或服務帳戶金鑰,請同時在每個請求中傳送 anthropic-workspace-id 標頭(例如,Python SDK 中的 default_headers 或 TypeScript 中的 defaultHeaders);請參閱選擇工作區
    • 更新您的模型名稱以使用 Claude 模型
  3. 檢閱以下各節以了解支援哪些功能

快速入門範例

import os

from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("ANTHROPIC_API_KEY"),  # Your Claude API key
    base_url="https://api.anthropic.com/v1/",  # the Claude API endpoint
)

response = client.chat.completions.create(
    model="claude-opus-5",  # Claude model name
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Who are you?"},
    ],
)

print(response.choices[0].message.content)

重要的 OpenAI 相容性限制

API 行為

以下是與使用 OpenAI 相比最主要的差異:

  • 函式呼叫的 strict 參數會被忽略,這表示工具使用的 JSON 不保證會遵循所提供的 schema。若需要保證符合 schema,請使用原生的 Claude API 搭配結構化輸出
  • 不支援音訊輸入;它會被忽略並從輸入中移除
  • 不支援提示快取(prompt caching),但 Anthropic SDK 中有支援
  • 系統/開發者訊息會被提升並串接到對話的開頭,因為 Anthropic 僅支援單一的初始系統訊息。

大多數不支援的欄位會被靜默忽略,而不會產生錯誤。這些都記錄在以下各節中。

輸出品質考量

如果您已對提示進行了大量調整,它很可能是專門針對 OpenAI 調校的。請考慮使用提示最佳實務指南為 Claude 重新調整。

系統/開發者訊息提升

OpenAI SDK 的大多數輸入都能清楚地直接對應到 Anthropic 的 API 參數,但一個明顯的差異是系統/開發者提示的處理方式。透過 OpenAI,這兩種提示可以放置在聊天對話的任何位置。由於 Anthropic 僅支援一個初始的系統訊息,API 會取得所有系統/開發者訊息,並以單一換行符號(\n)將它們串接在一起。然後,這個完整的字串會作為單一的系統訊息提供在訊息的開頭。

思考支援

您可以透過新增 thinking 參數來啟用思考。在目前的模型上,思考是自適應的,由 Claude 決定何時思考以及思考的深度,而在 Claude 5 模型上則預設為開啟;手動設定的擴展思考(extended thinking)是一種舊版模式。雖然思考能提升 Claude 在複雜任務上的推理能力,但 OpenAI SDK 不會回傳 Claude 的詳細思考過程。若需要完整的思考功能,包括存取 Claude 的逐步推理輸出,請使用原生的 Claude API。

response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Who are you?"}],
    extra_body={"thinking": {"type": "enabled", "budget_tokens": 2000}},
)

速率限制

速率限制(rate limit)遵循 Anthropic 針對 /v1/messages 端點的標準限制

詳細的 OpenAI 相容 API 支援

請求欄位

簡單欄位

欄位支援狀態
model使用 Claude 模型名稱
max_tokens完全支援
max_completion_tokens完全支援
stream完全支援
stream_options完全支援
top_p完全支援
parallel_tool_calls完全支援
stop所有非空白的停止序列皆可運作
temperature介於 0 和 1 之間(含)。大於 1 的值會被限制為 1。
n必須恰好為 1
logprobs忽略
metadata忽略
response_format忽略。若需要 JSON 輸出,請搭配原生 Claude API 使用結構化輸出
prediction忽略
presence_penalty忽略
frequency_penalty忽略
seed忽略
service_tier忽略
audio忽略
logit_bias忽略
store忽略
user忽略
modalities忽略
top_logprobs忽略
reasoning_effort忽略

tools / functions 欄位

messages 陣列欄位

回應欄位

欄位支援狀態
id完全支援
choices[]長度永遠為 1
choices[].finish_reason完全支援
choices[].index完全支援
choices[].message.role完全支援
choices[].message.content完全支援
choices[].message.tool_calls完全支援
object完全支援
created完全支援
model完全支援
finish_reason完全支援
content完全支援
usage.completion_tokens完全支援
usage.prompt_tokens完全支援
usage.total_tokens完全支援
usage.completion_tokens_details永遠為空
usage.prompt_tokens_details永遠為空
choices[].message.refusal永遠為空
choices[].message.audio永遠為空
logprobs永遠為空
service_tier永遠為空
system_fingerprint永遠為空

錯誤訊息相容性

相容層會維持與 OpenAI API 一致的錯誤格式。然而,詳細的錯誤訊息不會完全相同。請僅將錯誤訊息用於記錄和除錯。

標頭相容性

雖然 OpenAI SDK 會自動管理標頭,但以下是 Claude API 所支援的完整標頭清單,供需要直接處理標頭的開發者參考。

標頭支援狀態
x-ratelimit-limit-requests完全支援
x-ratelimit-limit-tokens完全支援
x-ratelimit-remaining-requests完全支援
x-ratelimit-remaining-tokens完全支援
x-ratelimit-reset-requests完全支援
x-ratelimit-reset-tokens完全支援
retry-after完全支援
request-id完全支援
openai-version永遠為 2020-10-01
authorization完全支援
openai-processing-ms永遠為空

Was this page helpful?