Claude Platform Docs
CLI、SDK、ライブラリライブラリと統合

OpenAI SDKとの互換性

Anthropicは、OpenAI SDKを使用してClaude APIをテストできる互換性レイヤーを提供しています。わずかなコード変更で、Anthropicモデルの機能をすばやく評価できます。

OpenAI SDKを使い始める

OpenAI SDK互換機能を使用するには、次の手順が必要です。

  1. 公式のOpenAI SDKを使用する
  2. 以下を変更する
  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パラメータは無視されます。つまり、「tool use」(ツール使用)のJSONが指定されたスキーマに従うことは保証されません。スキーマへの準拠を保証するには、ネイティブのClaude APIの構造化出力を使用してください。
  • 音声入力はサポートされていません。無視され、入力から削除されます
  • プロンプトキャッシングはサポートされていませんが、Anthropic SDKではサポートされています
  • Anthropicは単一の最初のシステムメッセージのみをサポートしているため、システム/開発者メッセージは会話の先頭に引き上げられ、連結されます。

サポートされていないフィールドのほとんどは、エラーを発生させるのではなく、暗黙的に無視されます。これらはすべて以下のセクションに記載されています。

出力品質に関する考慮事項

プロンプトに多くの調整を加えてきた場合、それはOpenAIに特化して最適化されている可能性が高いです。プロンプトのベストプラクティスガイドを使用して、Claude向けに作り直すことを検討してください。

システム/開発者メッセージの引き上げ

OpenAI SDKへの入力のほとんどはAnthropicのAPIパラメータに明確に直接対応しますが、明確な違いの1つはシステム/開発者プロンプトの扱いです。OpenAIでは、これら2つのプロンプトをチャット会話全体のどこにでも配置できます。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」(レート制限)は、/v1/messagesエンドポイントに対するAnthropicの標準の制限に従います。

OpenAI互換APIサポートの詳細

リクエストフィールド

単純なフィールド

フィールドサポート状況
modelClaudeモデル名を使用
max_tokens完全にサポート
max_completion_tokens完全にサポート
stream完全にサポート
stream_options完全にサポート
top_p完全にサポート
parallel_tool_calls完全にサポート
stop空白以外のすべての停止シーケンスが機能
temperature0から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?