OpenAI Responses API:包括的ガイド

2025年5月現在
📌 Responses APIとは?

OpenAI Responses APIは、Chat CompletionsとAssistants APIの長所を統合した先進的なインターフェースです。2025年3月にリリースされたこのAPIは、多機能な対話型アプリケーション開発のための最も効率的な選択肢となっています。

「複数のやり取りを1回のAPIコールで完了させ、外部ツールも自動呼び出しできる対話型API」
📚

🔄 API概要と基本構造

最新API

OpenAI Responses APIは、対話型AIアプリケーション開発を簡素化するために設計されたAPIです。

マルチターン対話:複数のやり取りを1回のAPIコールで完了
ツール呼び出しの統合:Web検索、ファイル検索などを単一のAPI呼び出しから利用可能
ストリーミング応答:大きな応答をリアルタイムで部分的に送信
会話履歴の永続化:OpenAIのサーバー側で会話履歴を保持(30日間)
ℹ️ 注意: エンドポイント: https://api.openai.com/v1/responses
💰

💳 料金体系と利用制限

従量課金

Responses APIの料金は使用したトークン数と選択したモデルに基づいて課金されます。

GPT-4.1

入力: $2.00/1M tokens
出力: $8.00/1M tokens

GPT-4.1 mini

入力: $0.40/1M tokens
出力: $1.60/1M tokens

OpenAI o3

入力: $10.00/1M tokens
出力: $40.00/1M tokens

Web検索ツール:$25~$50/1,000回のツール呼び出し
GPT-4oでデフォルト設定の場合:約$35/1k検索
🔄

リクエスト・レスポンスの基本フォーマット

基本構造

シンプルなリクエスト例

{ "model": "gpt-4.1", "input": "テキスト入力または構造化データ", "store": true }

構造化リクエスト例

{ "model": "gpt-4.1", "input": [ { "role": "user", "content": "こんにちは" } ] }

レスポンス例

{ "id": "resp_6786a1bec27481909a17d673315b29f6", "created_at": 1741408624.0, "model": "gpt-4.1", "object": "response", "output": [ { "id": "msg_67cbc970fd0881908353a4298996b3f6", "content": [ { "text": "応答テキスト", "type": "output_text" } ], "role": "assistant", "type": "message" } ], "status": "completed", "usage": { "input_tokens": 405, "output_tokens": 285, "total_tokens": 690 } }
⚙️

🔧 主要パラメーターの詳細

パラメーター

必須パラメーター任意パラメーターで構成されています。

model:使用するモデルを指定(必須)
input:ユーザーからの入力(必須)
store:レスポンスを保存するかどうか(デフォルト: true)
temperature:出力のランダム性を制御(0~2、デフォルト: 1)
top_p:出力の多様性を制御(0~1、デフォルト: 1)
max_output_tokens:出力の最大トークン数
previous_response_id:前回のレスポンスIDを指定して会話を継続
tools:モデルが使用できるツールのリスト
🤖

🔍 サポートモデルと特性

モデル選択

利用可能なモデルとその特性は以下の通りです:

モデル 特性 推奨用途
GPT-4.1 高性能モデル 複雑な推論、創造的タスク
GPT-4.1 mini バランス型 一般的な対話、コンテンツ生成
GPT-4.1 nano 高速モデル 高速応答が必要なアプリ
OpenAI o3 最強の推論 複雑な推論、専門的タスク
gpt-4o マルチモーダル 画像理解を必要とするタスク
🔍

🎛️ temperature/top_pの調整

出力制御

temperatureパラメーターは出力のランダム性を制御します:

0:最も確率的に可能性が高い次の単語を選択(同じ入力に同じ出力)
1:バランスの取れたランダム性(デフォルト)
2:非常にランダムな出力(創造性は高いが一貫性が低い)

使い分け方

一貫した回答が必要な場合: temperature = 0
創造的なコンテンツ生成: temperature = 0.7~1.2
多様な回答が必要な場合: temperature = 1~1.5
📝 ヒント: 通常はtemperatureとtop_pのどちらか一方のみを調整しましょう
🔄

🔗 高度な使用パターン

活用法

より効果的にResponses APIを活用するための高度な使用パターンを紹介します。

システムメッセージの効果的な活用:モデルの役割や動作を明確に定義
会話履歴管理:previous_response_idを使用した会話の継続
長い会話のコンテキスト管理:トークン最適化と要約技術
ツールの利用:Web検索など外部ツールとの統合
「システムメッセージは明確なロール定義と具体的な指示を含めることで効果を最大化できます」
💬

🛠️ システムメッセージと会話履歴

テクニック

効果的なシステムメッセージの基本構造

{ "model": "gpt-4.1", "input": [ { "role": "system", "content": "あなたはプロフェッショナルな日本語教師です。質問に対して簡潔かつ正確に回答してください。" }, { "role": "user", "content": "「は」と「が」の違いを教えてください。" } ] }

会話履歴管理(previous_response_id使用)

// 最初のレスポンス response = client.responses.create( model: "gpt-4.1", input: "災害時の備えについて教えてください" ) // 前のレスポンスIDを使用した続きの会話 second_response = client.responses.create( model: "gpt-4.1", previous_response_id: response.id, input: "具体的な持ち出し品リストを挙げて" )
🔍

🔧 ツールの利用とエラーハンドリング

実装テクニック

Web検索ツールの使用例

const response = await client.responses.create({ model: "gpt-4o-mini", input: "先週の東京の主要なニュースを教えて", tools: [ { type: "web_search", config: { search_context_size: "medium", user_location: { type: "approximate", city: "Tokyo", region: "Tokyo", country: "Japan" } } } ] });

エラーハンドリングのベストプラクティス

適切なステータスコードの確認
リトライロジックの実装
レート制限の管理
例外処理の実装
実装例

💻 主要プログラミング言語別の実装例

📝 Python
from openai import OpenAI client = OpenAI() response = client.responses.create( model="gpt-4.1", input="一文のユニコーンに関する寝物語を書いてください。" ) print(response.output_text)
🔄 JavaScript (Node.js)
import OpenAI from "openai"; const client = new OpenAI(); const response = await client.responses.create({ model: "gpt-4.1", input: "一文のユニコーンに関する寝物語を書いてください。" }); console.log(response.output_text);
⚙️ C#
using System; using OpenAI.Responses; OpenAIResponseClient client = new( model: "gpt-4.1", apiKey: Environment.GetEnvironmentVariable("OPENAI_API_KEY") ); OpenAIResponse response = client.CreateResponse("一文のユニコーンに関する寝物語を書いてください。"); Console.WriteLine(response.GetOutputText());

🔍 ユースケース別の最適パラメーター設定

質問応答/情報検索

モデル: gpt-4.1
temperature: 0.2
ツール: web_search

創造的文章作成

モデル: gpt-4.1
temperature: 0.8
frequency_penalty: 0.5

プログラミング支援

モデル: OpenAI o3
temperature: 0.1

多言語翻訳

モデル: gpt-4.1
temperature: 0.3

「使用目的に合わせて適切なモデルとパラメーターを選択することで、コスト効率と品質のバランスを最適化できます」

📊 パフォーマンス最適化とセキュリティ

パフォーマンス最適化テクニック
バッチ処理:多数の類似リクエストをまとめて処理
キャッシング:同一クエリに対するレスポンスを再利用
モデル選択の最適化:必要性能に応じた適切なモデル選択
トークン最適化:入力プロンプトを最適化して削減
セキュリティ考慮事項
APIキーの安全な管理:環境変数やシークレット管理
個人情報の匿名化:PII(個人特定情報)を削除
store: falseでサーバー保存を無効化
入出力の検証:サニタイジングとフィルタリング
他のOpenAI APIとの連携
Embeddings API:セマンティック検索の実装
Vision API:画像解析と説明の生成
類似サービスとの比較
Google Gemini API:Googleサービス統合が特徴
Chat Completions API:従来のOpenAI API
Assistants API:より高度なアシスタント機能