• 消息
  • 托管智能体
  • 管理
Search...
⌘K
CLI、SDK 和库
概览
ant CLI
快速入门身份验证选项使用 CLI脚本与自动化
客户端 SDK
中间件PythonTypeScriptC#GoJavaPHPRuby
库与集成
Apple Foundation ModelsOpenAI SDK 兼容性
Log in
OpenAI SDK 兼容性
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
CLI、SDK 和库/库与集成

OpenAI SDK 兼容性

Anthropic 提供了一个兼容层,使您能够使用 OpenAI SDK 来测试 Claude API。只需进行少量代码更改,您就可以快速评估 Anthropic 模型的能力。

此兼容层主要用于测试和比较模型能力,对于大多数用例而言,它并不被视为长期或生产就绪的解决方案。虽然我们致力于保持其完整功能且不引入破坏性更改,但优先考虑的是 Claude API 的可靠性和有效性。

有关已知兼容性限制的更多信息,请参阅重要的 OpenAI 兼容性限制。

如果您在使用 OpenAI SDK 兼容性功能时遇到任何问题,请通过此兼容性反馈表单分享您的反馈。

为了获得最佳体验并访问 Claude API 的完整功能集(PDF 处理、引用、扩展思考和提示缓存),请使用原生 Claude API。

OpenAI SDK 入门

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

  1. 使用官方 OpenAI SDK
  2. 更改以下内容
    • 将您的 base URL 更新为指向 Claude API
    • 将您的 API 密钥替换为 Claude API 密钥
    • 将您的模型名称更新为使用 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-4-8",  # 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 的结构化输出。
  • 不支持音频输入;它将被直接忽略并从输入中剥离
  • 不支持提示缓存,但 Anthropic SDK 支持此功能
  • 系统/开发者消息会被提升并拼接到对话的开头,因为 Anthropic 仅支持单个初始系统消息。

大多数不支持的字段会被静默忽略,而不会产生错误。这些内容均在下方有详细说明。

输出质量注意事项

如果您对提示进行了大量调优,那么它很可能是专门针对 OpenAI 进行了优化。建议使用 Claude Console 中的提示改进器作为一个良好的起点。

系统/开发者消息提升

OpenAI SDK 的大多数输入都能清晰地直接映射到 Anthropic 的 API 参数,但一个明显的区别是对系统/开发者提示的处理方式。通过 OpenAI,这两种提示可以放置在聊天对话的任意位置。由于 Anthropic 仅支持初始系统消息,API 会获取所有系统/开发者消息,并用单个换行符(\n)将它们拼接在一起。然后,这个完整的字符串会作为单个系统消息放置在消息列表的开头。

扩展思考支持

您可以通过添加 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}},
)

速率限制

速率限制遵循 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?

  • OpenAI SDK 入门
  • 快速入门示例
  • 重要的 OpenAI 兼容性限制
  • API 行为
  • 输出质量注意事项
  • 系统/开发者消息提升
  • 扩展思考支持
  • 速率限制
  • OpenAI 兼容 API 支持详情
  • 请求字段
  • 响应字段
  • 错误消息兼容性
  • 请求头兼容性