Response API とは
Response API(/v1/responses)は 2025 年に OpenAI が公開した統一 API です。従来 Chat Completions、Assistants、Tools などに分散していた機能を 1 つのエンドポイントに集約し、以下を 1 回の呼び出しで実現できます。
- マルチターン会話とコンテキスト管理
- ビルトインツール(Web 検索、ファイル検索、コードインタープリタ、コンピュータ操作など)
- カスタム関数呼び出し
- 推論モデル(o シリーズなど)の思考過程の出力
- テキスト、画像、音声などのマルチモーダル入出力
Chat Completions との主な違い
ステートフル vs ステートレス
Chat Completions は毎回全履歴を送信する必要があります。Response API は
previous_response_id で直前のレスポンスを継続でき、コンテキストをサーバー側で管理します。統一された入力構造
Chat Completions は
messages 配列を使います。Response API は input フィールドで、文字列、メッセージ配列、画像やファイルを含むマルチモーダル構造を受け付けます。ビルトインツール
web_search、file_search、code_interpreter、computer_use などのホスト型ツールを標準サポートし、自前実装が不要です。推論の可視化
o1 や o3 などの推論モデルでは、
reasoning アイテムが出力に含まれ、思考過程の追跡やデバッグが容易です。もっともシンプルな呼び出し
cURL
id:このレスポンスの一意な ID。次回の継続に使用可能output:モデルが生成したアイテム配列(テキスト、ツール呼び出し、推論など)output_text:全テキストを連結した便利フィールドusage:トークン消費量
マルチターン会話:手動での履歴連結を卒業
従来は毎ターン全messages を送っていました。Response API は前回の id を渡すだけです。
Python
ビルトインツール:一行で Web 検索を有効化
Python
file_search(アップロードファイルの RAG)、code_interpreter(サンドボックス実行)、computer_use(ブラウザ/デスクトップ操作)が利用可能です。
ストリーミング出力
Response API は Server-Sent Events で構造化イベントを返すため、Chat Completions の delta より扱いやすくなっています。Python
response.created、response.output_text.delta、response.tool_call.created、response.completed などがあります。
Response API を使うべきタイミング
当面 Chat Completions で十分なケース
messagesベースの既存コードが多く、短期的な移行メリットが小さい- ステートレスな単発補完だけで、ツールも不要
- まだ Response API に対応していないサードパーティラッパーに依存している
移行のヒント
1
エンドポイントを置き換える
/v1/chat/completions を /v1/responses に変更し、messages を input に置き換えます。2
previous_response_id でセッション管理
クライアントで全履歴を保存するのをやめ、直前の
response.id のみを保持します。3
ビルトインツールに置き換える
自作の検索、RAG、コード実行を
web_search、file_search、code_interpreter に置き換えられるか評価します。4
新しいイベントストリームへ対応
ストリーミングを使っている場合、delta 解析を
event.type ベースのディスパッチに変更します。