この互換性レイヤーは主にモデルの機能をテストおよび比較することを目的としており、ほとんどのユースケースにおいて長期的または本番環境対応のソリューションとは見なされていません。完全に機能し続け、破壊的変更が発生しないことを意図していますが、優先されるのはClaude APIの信頼性と有効性です。
既知の互換性の制限事項の詳細については、OpenAI互換性に関する重要な制限事項を参照してください。
OpenAI SDK互換性機能に関して問題が発生した場合は、この互換性フィードバックフォームからフィードバックをお寄せください。
最良の体験とClaude APIの全機能セット(PDF処理、引用、思考、プロンプトキャッシング)へのアクセスのためには、ネイティブのClaude APIを使用してください。
OpenAI SDK互換性機能を使用するには、以下が必要です。
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を使用する場合との最も大きな違いは以下のとおりです。
strictパラメータは無視されます。つまり、tool useのJSONが指定されたスキーマに従うことは保証されません。スキーマへの準拠を保証するには、ネイティブのClaude APIの構造化出力を使用してください。サポートされていないフィールドのほとんどは、エラーを発生させるのではなく、静かに無視されます。これらはすべて以下のセクションに記載されています。
プロンプトを何度も調整してきた場合、それはOpenAI向けに特化して最適化されている可能性が高いです。プロンプトのベストプラクティスガイドを使用して、Claude向けに作り直すことを検討してください。
OpenAI SDKへの入力のほとんどは、AnthropicのAPIパラメータに明確に直接対応していますが、1つの明確な違いはシステム/開発者プロンプトの扱いです。OpenAIでは、これら2つのプロンプトをチャット会話全体のどこにでも配置できます。Anthropicは初期のシステムメッセージのみをサポートしているため、APIはすべてのシステム/開発者メッセージを取得し、それらの間に単一の改行(\n)を挟んで連結します。この完全な文字列は、メッセージの先頭で単一のシステムメッセージとして提供されます。
thinkingパラメータを追加することで、思考を有効にできます。現在のモデルでは思考は適応的であり、Claudeがいつ、どの程度深く思考するかを決定します。Claude 5モデルではデフォルトで有効になっています。手動で設定する拡張思考はレガシーモードです。思考は複雑なタスクにおける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}},
)レート制限は、/v1/messagesエンドポイントに対するAnthropicの標準の制限に従います。
| フィールド | サポート状況 |
|---|---|
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?