皆が模倣したOpenAI APIは、推奨されているものではない
Ollama、vLLM、LM Studioといったほとんどのローカルモデルツールは、「OpenAI-compatible(OpenAI互換)」というバッジを使用しています。
しかし、問題があります。ほとんどの人は、これが特定のひとつのことを意味していると考えています。実際には、2つの異なるフォーマットが存在します。一つは業界標準であり、もう一つはOpenAIが実際に使用を推奨しているものです。
内訳は以下の通りです。
旧標準:Chat Completions API
これは誰もが模倣したフォーマットです。developer、user、assistantといったロール(役割)を持つメッセージのリストを使用します。
これには主に2つの問題があります:
- ステートレスであること:毎回、会話履歴のすべてを再送する必要があります。
- 重いこと:複雑なエージェントの場合、膨大なトランスクリプトを送信すると、速度が低下しコストも高くなります。
新標準:Responses API
OpenAIはこれを2025年3月に導入しました。これは単なるチャットボットではなく、エージェント向けに設計されています。
なぜこちらの方が優れているのか:
- ステートフルであること:サーバーが会話を記憶するため、すべてを再送する必要がありません。
- 推論の扱いがより優れていること:モデルの「思考の連鎖(chain of thought)」をサーバー側に保持します。
- よりクリーンな構造であること:指示(instructions)と実際のユーザー入力を分離します。
混乱の原因
ツールが「OpenAI-compatible」と謳っている場合、そのほとんどは旧来のChat Completionsフォーマットをサポートしていることを意味します。
業界はこの旧フォーマットを中心に巨大なエコシステムを構築してきました。どこにでも存在していたため、それがデフォルトとなったのです。これにより、誰もが単一企業のプライベートAPIのクローンを作成しているというリスクが生じました。
解決策:Open Responses
これを解決するために、OpenAIはHugging FaceやVercelなどのパートナーと共に、Open Responses仕様を立ち上げました。
APIがどのように動作するかを推測する代わりに、開発者は文書化され、テスト可能な標準を利用できるようになりました。これにより、最小限のコード変更でOpenAIとローカルモデルを切り替えることが可能になります。
推奨されるアクション:
- 新しいプロジェクトを構築する場合は、Responses APIを使用してください。
- 既存のアプリをメンテナンスしている場合は、Chat Completionsは長期間サポートされ続けます。
- コストとレイテンシを抑えるために、使用するツールが新しいステートフルなフォーマットをサポートしているかどうかを常に確認してください。
この違いを理解しておくことで、トークン数のカウントやメッセージ構造におけるエラーを防ぐことができます。
Source: https://dev.to/rlnorthcutt/the-openai-api-everyone-copied-isnt-the-one-openai-recommends-28o8
Optional learning community: https://t.me/GyaanSetuAi
