皆が模倣した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