OpenAI SDK 相容性(測試版)
只需進行少量程式碼變更,您就可以使用 OpenAI SDK 來測試 Anthropic API。Anthropic 提供了一個相容層,讓您能夠以最少的努力快速評估 Anthropic 模型的能力。
請在此處提交有關 OpenAI SDK 相容性功能的反饋或錯誤報告。
開始之前
此相容層旨在以最少的開發工作量測試和比較模型能力,並不被視為大多數使用案例的長期或生產就緒解決方案。為了獲得最佳體驗並訪問 Anthropic API 的完整功能集(PDF 處理、引用、延伸思考和提示快取),我們建議使用原生 Anthropic API。
開始使用 OpenAI SDK
要使用 OpenAI SDK 相容性功能,您需要:
- 使用官方 OpenAI SDK
- 更改以下內容
- 將您的基本 URL 更新為指向 Anthropic 的 API
- 將您的 API 金鑰替換為 Anthropic API 金鑰
- 將您的模型名稱更新為使用 Claude 模型
- 查看下方文檔了解支援的功能
快速入門示例
重要的 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。
速率限制
速率限制遵循 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 | 始終為空 |