請在此處提交有關 OpenAI SDK 相容性功能的反饋或錯誤報告。

開始之前

此相容層旨在以最少的開發工作量測試和比較模型能力,並不被視為大多數使用案例的長期或生產就緒解決方案。為了獲得最佳體驗並訪問 Anthropic API 的完整功能集(PDF 處理引用延伸思考提示快取),我們建議使用原生 Anthropic API

開始使用 OpenAI SDK

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

  1. 使用官方 OpenAI SDK
  2. 更改以下內容
  3. 查看下方文檔了解支援的功能

快速入門示例

from openai import OpenAI

client = OpenAI(
    api_key="ANTHROPIC_API_KEY",  # 您的 Anthropic API 金鑰
    base_url="https://api.anthropic.com/v1/"  # Anthropic 的 API 端點
)

response = client.chat.completions.create(
    model="claude-opus-4-20250514", # Anthropic 模型名稱
    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 不保證遵循提供的模式。
  • 不支持音頻輸入;它將被簡單地忽略並從輸入中剔除
  • 不支持提示快取,但在 Anthropic SDK 中支持
  • 系統/開發者消息被提升並連接到對話的開頭,因為 Anthropic 只支持單個初始系統消息。

大多數不支持的字段會被靜默忽略而不是產生錯誤。這些都在下面有詳細說明。

輸出質量考慮

如果您對提示進行了大量調整,它可能已經針對 OpenAI 進行了良好的調整。考慮使用我們的 Anthropic Console 中的提示改進工具 作為一個良好的起點。

系統 / 開發者消息提升

OpenAI SDK 的大多數輸入都可以直接映射到 Anthropic 的 API 參數,但一個明顯的區別是系統/開發者提示的處理。這兩種提示可以通過 OpenAI 放置在整個聊天對話中。由於 Anthropic 只支持初始系統消息,我們會將所有系統/開發者消息連接在一起,中間用單個換行符 (\n) 分隔。然後將這個完整的字符串作為單個系統消息提供在消息的開頭。

延伸思考支持

您可以通過添加 thinking 參數來啟用延伸思考功能。雖然這將改善 Claude 在複雜任務中的推理能力,但 OpenAI SDK 不會返回 Claude 的詳細思考過程。要獲得完整的延伸思考功能,包括訪問 Claude 的逐步推理輸出,請使用原生 Anthropic API。

response = client.chat.completions.create(
    model="claude-opus-4-20250514",
    messages=...,
    extra_body={
        "thinking": { "type": "enabled", "budget_tokens": 2000 }
    }
)

速率限制

速率限制遵循 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忽略
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 會自動管理標頭,但這裡是 Anthropic 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始終為空