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パラメータに直接マッピングされますが、1つの明確な違いはシステム/開発者プロンプトの扱いです。これら2つのプロンプトは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 | 常に空 |