OpenAI SDK互換性
AnthropicはOpenAI SDKを使用してAnthropic APIをテストできる互換性レイヤーを提供しています。わずかなコード変更で、Anthropicモデルの機能を迅速に評価できます。
この互換性レイヤーは主にモデル機能のテストと比較を目的としており、ほとんどのユースケースにおいて長期的または本番環境対応のソリューションとは考えられていません。完全に機能的に保ち、破壊的変更を行わない意図はありますが、私たちの優先事項はAnthropic APIの信頼性と有効性です。
既知の互換性制限の詳細については、重要なOpenAI互換性制限を参照してください。
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パラメータに直接明確にマップされますが、1つの明確な違いはシステム/開発者プロンプトの処理です。これら2つのプロンプトは、OpenAI経由でチャット会話全体に配置できます。Anthropicは初期システムメッセージのみをサポートするため、すべてのシステム/開発者メッセージを取得し、それらの間に単一の改行(\n
)を挟んで連結します。この完全な文字列は、メッセージの開始時に単一のシステムメッセージとして提供されます。
拡張思考サポート
thinking
パラメータを追加することで、拡張思考機能を有効にできます。これにより複雑なタスクに対するClaudeの推論が改善されますが、OpenAI SDKはClaudeの詳細な思考プロセスを返しません。Claudeのステップバイステップの推論出力へのアクセスを含む完全な拡張思考機能については、ネイティブのAnthropic APIを使用してください。
レート制限
レート制限は、/v1/messages
エンドポイントに対するAnthropicの標準制限に従います。
詳細な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
フィールド
フィールドを表示
フィールドを表示
tools[n].function
フィールド
フィールド | サポート状況 |
---|---|
name | 完全サポート |
description | 完全サポート |
parameters | 完全サポート |
strict | 無視 |
tools[n].function
フィールド
フィールド | サポート状況 |
---|---|
name | 完全サポート |
description | 完全サポート |
parameters | 完全サポート |
strict | 無視 |
functions[n]
フィールド
OpenAIはfunctions
フィールドを非推奨とし、代わりにtools
の使用を推奨しています。
フィールド | サポート状況 |
---|---|
name | 完全サポート |
description | 完全サポート |
parameters | 完全サポート |
strict | 無視 |
messages
配列フィールド
フィールドを表示
フィールドを表示
messages[n].role == "developer"
のフィールド
開発者メッセージは初期システムメッセージの一部として会話の開始時に先頭に移動されます
フィールド | サポート状況 |
---|---|
content | 完全サポート、ただし先頭に移動 |
name | 無視 |
messages[n].role == "developer"
のフィールド
開発者メッセージは初期システムメッセージの一部として会話の開始時に先頭に移動されます
フィールド | サポート状況 |
---|---|
content | 完全サポート、ただし先頭に移動 |
name | 無視 |
messages[n].role == "system"
のフィールド
システムメッセージは初期システムメッセージの一部として会話の開始時に先頭に移動されます
フィールド | サポート状況 |
---|---|
content | 完全サポート、ただし先頭に移動 |
name | 無視 |
messages[n].role == "user"
のフィールド
フィールド | バリアント | サブフィールド | サポート状況 |
---|---|---|---|
content | string | 完全サポート | |
array , type == "text" | 完全サポート | ||
array , type == "image_url" | url | 完全サポート | |
detail | 無視 | ||
array , type == "input_audio" | 無視 | ||
array , type == "file" | 無視 | ||
name | 無視 |
messages[n].role == "assistant"
のフィールド
フィールド | バリアント | サポート状況 |
---|---|---|
content | string | 完全サポート |
array , type == "text" | 完全サポート | |
array , type == "refusal" | 無視 | |
tool_calls | 完全サポート | |
function_call | 完全サポート | |
audio | 無視 | |
refusal | 無視 |
messages[n].role == "tool"
のフィールド
フィールド | バリアント | サポート状況 |
---|---|---|
content | string | 完全サポート |
array , type == "text" | 完全サポート | |
tool_call_id | 完全サポート | |
tool_choice | 完全サポート | |
name | 無視 |
messages[n].role == "function"
のフィールド
フィールド | バリアント | サポート状況 |
---|---|---|
content | string | 完全サポート |
array , type == "text" | 完全サポート | |
tool_choice | 完全サポート | |
name | 無視 |
レスポンスフィールド
フィールド | サポート状況 |
---|---|
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 | 常に空 |