🔄
🌐 基本構造と動作原理
統合API
単一のエンドポイントで高度な機能を提供し、リクエスト・レスポンスはJSON形式を採用しています。
{
"model": "gpt-4.1",
"instructions": "あなたは礼儀正しいアシスタントです。",
"input": "OpenAIのResponses APIとは何ですか?",
"temperature": 0.7,
"max_output_tokens": 500
}
認証はBearer方式。ヘッダーに Authorization: Bearer {APIキー} を付与
レスポンスに id, created_at, status, output_text を含む
ストリーミング対応でリアルタイム応答も可能 (stream: true)
💰
💸 料金体系と利用制限
コスト最適化
API自体の利用料金はなく、使用するモデルのトークン消費量に応じた課金制となっています。
🔍
GPT-4o
入力: 約$0.005/1Kトークン
出力: 約$0.02/1Kトークン
⚡
GPT-4o-mini
入力: 約$0.0006/1Kトークン
出力: 約$0.0024/1Kトークン
📝 注意: 内蔵ツールには追加料金が発生します:Web検索(1,000回あたり$35)、ファイル検索(1,000回あたり$2.50)、ベクターストア保管(1GB/日$0.10、初1GB無料)
レート制限あり(RPM/TPM): モデルとプランにより異なる
コンテキスト長はモデル依存: GPT-4o-miniは最大128kトークン
📋
📊 対応モデル一覧
モデル選択
2025年5月現在、以下のモデルがResponses APIで利用可能です:
GPT-4.1 ファミリー
• gpt-4.1: 最新の高精度モデル
• gpt-4.1-mini: 軽量版
• gpt-4.1-nano: 超小型版
GPT-4o ファミリー
• gpt-4o: 多機能モデル
• gpt-4o-mini: 小型・低コスト版
(128Kコンテキスト対応)
その他のモデル
• o3, o4-mini: 小型推論モデル
• gpt-image-1: 画像入力処理
• GPT-3.5 Turbo系(下位互換)
⚙️
🎛️ 主要パラメーター解説
制御機能
リクエストパラメーターを調整することで、モデルの応答を細かく制御できます。
必須 model: 使用するモデルを指定(例: "gpt-4.1")
必須 input/messages: モデルへの入力(テキスト文字列またはメッセージオブジェクト配列)
instructions: 開発者による指示(旧systemメッセージ)[デフォルト: null]
temperature: 生成の多様性(0~2)[デフォルト: 1.0]
top_p: 確率質量の上位考慮率(0~1)[デフォルト: 1.0]
max_tokens/max_output_tokens: 最大生成トークン数 [モデルごとに異なる]
frequency_penalty: 繰り返し抑制(-2~2)[デフォルト: 0]
presence_penalty: 新出トピック促進(-2~2)[デフォルト: 0]
💡 ヒント: temperatureを低く(0~0.5)すると決定論的な応答に、高く(0.8~1.5)すると創造的な応答になります。temperatureとtop_pは通常どちらか一方のみ調整するのがベストプラクティスです。
🧩
🔧 応答フォーマット制御
JSON出力
response_formatパラメーターを使用して、構造化データ出力を強制できます。
"response_format": {
"type": "json_schema",
"name": "product_details",
"schema": {
"type": "object",
"properties": {
"product_name": {"type": "string"},
"price": {"type": "number"}
},
"required": ["product_name", "price"],
"additionalProperties": false
},
"strict": true
}
JSON Schemaを直接指定して出力形式を強制
strict: trueでスキーマに厳密に従う
Chat APIのPydantic機能より言語非依存
🔮
🔄 高度なパラメーター
細かな制御
より複雑な制御や特殊なケースに対応するためのパラメーターです。
seed: 生成乱数シード値(整数)[デフォルト: 未指定]
stream: ストリーミング応答フラグ [デフォルト: false]
logprobs/top_logprobs: トークン予測確率情報取得(整数)
logit_bias: 特定トークンに対するバイアス設定(-100~100)
tools: 使用するビルトインツールの指定
metadata: 任意付与メタ情報タグ
seedパラメーターを固定値に設定すると、同じ入力・同じパラメーターで複数回呼び出しても再現性のある応答が得られます(実験やデバッグに有用)
🔄
🧠 会話管理と文脈保持
状態管理
複数ターン会話の履歴を効率的に管理するための機能が実装されています。
previous_response_id: 前回の応答IDを指定するだけで会話が続行
storeパラメータでサーバー保存を制御 [デフォルト: true]
応答はサーバーに30日間保存され履歴取得可能
プライバシー確保のためstore: falseも指定可能
🔒 セキュリティ: 保存されたデータはデフォルトでOpenAIのモデル学習には使用されません
🛠️
🧰 組み込みツール機能
拡張能力
APIに外部機能連携を組み込むことで、情報検索や計算処理など様々な操作を実行できます。
Web検索ツール
インターネットから最新情報を取得し、回答に活用します。1,000回あたり$35程度の追加費用が発生。
ファイル検索ツール
アップロードしたファイルやドキュメントから関連情報を検索。1,000回あたり$2.50の追加費用。
コード実行ツール
Python等のコードをリアルタイムで実行し結果を返します。1回あたり固定料金が発生。
ベクターストア管理
埋め込みベクトルを保存・検索するためのツール。1GB/日$0.10(初1GB無料)。
💻
📝 実装サンプルコード
実用例
主要言語での実装例です。公式SDKを使えば簡単にAPIを利用できます。
# Python
import openai
openai.api_key = "YOUR_API_KEY"
response = openai.Response.create(
model="gpt-4.1",
instructions="あなたは専門的なITアドバイザーです。",
input="最新のAI動向について教えてください。",
tools=[{"type": "web_search"}],
temperature=0.7,
max_output_tokens=800
)
print(response.output_text)
// JavaScript (Node.js)
const OpenAI = require("openai");
const openai = new OpenAI.ApiClient({
apiKey: process.env.OPENAI_API_KEY
});
async function getResponse() {
const response = await openai.responses.create({
model: "gpt-4.1",
instructions: "You are a helpful assistant.",
input: "What's the latest AI trend?",
tools: [{ type: "web_search" }],
temperature: 0.5
});
console.log(response.data.output_text);
}
getResponse();