技術資料

OpenAI API 実践例:Chat Completions API で JSON形式レスポンスを取得する方法

作成日:2025.06.04

OpenAI API の Chat Completions API を用いて、レスポンス形式を JSON に固定する実装手法を紹介します。PHP を使った具体的なコード例を通じ、response_format パラメータの設定方法や利用シーン、最新モデルでのオプション利用まで解説しています。

OpenAI の Chat Completions API では、レスポンスの形式を JSON に固定することができます。

APIへのリクエストで、response_format パラメータを指定することで、レスポンスを JSON形式 に設定できます。

PHP での実装例

以下は、PHP で OpenAI の Chat Completions API を使って、レスポンスを JSON形式 に固定するコードの例です。

$openai_key = 'sk-proj--1234567890abcdefg';

$data = array(
	'model' => 'gpt-4o-mini',
	'messages' => $prompts,
	'temperature' => 1.0,
	'response_format' => ['type' => 'json_object'],
);
$json_data = json_encode($data);
$url = 'https://api.openai.com/v1/chat/completions';
$headers = array(
	'Content-Type: application/json',
	"Authorization: Bearer ".$openai_key
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 300);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 300);
$response = curl_exec($ch);
if($response === false){
	echo 'Curl error: ' . curl_error($ch);
	exit;
}
curl_close($ch);
$apiresult = json_decode($response);
return json_decode($apiresult->choices[0]->message->content);

このコードでは、response_format パラメータに ['type' => 'json_object'] を指定しています。これにより、APIのレスポンスが JSON形式 に固定されます。

そもそものAPIのレスポンス全体がJSON形式で返ってくる上に、その中のAIによる生成結果も二重でJSON形式で返ってくるので、json_decode を二回使って、最終的な結果を取得しています。

プロンプトの例

API に投げるプロンプトの一例。

日本のレコード会社の商品情報データベースの表示確認のために、架空の商品情報のテストデータを作成してください。

# 出力形式
JSON形式で以下のデータを出力してください。
- `title`: 商品タイトル
- `artist`: アーティスト名
- `release_date`: リリース日(YYYY-MM-DD形式)
- `genre`: ジャンル
- `price`: 価格(整数)
- `label`: レーベル名
- `description`: 商品説明

# 出力例
```json
{
    "title": "夏の光線",
    "artist": "青空アンサンブル",
    "release_date": "2025-07-15",
    "genre": "J-POP",
    "price": 3300,
    "label": "サンシャインミュージック",
    "description": "注目の新人バンド・青空アンサンブルの待望のデビューアルバム。夏をテーマにした爽やかなメロディと心に響く歌詞が特徴の全12曲を収録。"
}
```

こんな感じで、システムの表示確認のために「それっぽい」テストデータを量産したい時とかに重宝します。

注意点

今回は response_format パラメータに ['type' => 'json_object'] を指定する方法を紹介しましたが、新しめのモデルでは、['type' => 'json_schema'] を指定することもできます。これにより、より厳密な JSON スキーマに基づいたレスポンスが得られます。

詳しくはStructured Outputs - OpenAI API を参照。

この記事を書いた人

※上が私です。

奈良市を拠点に、26年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。

これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。

【制作会社・企業様向けサポート】
  • 専任エンジニアのいない企業様に対するシステム面の不安を解消
  • 柔軟な契約形態や短納期での対応により、急なニーズにも迅速にサポート
  • システムの企画段階から運用まで、ワンストップでのサービスを提供

Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。

ぜひ、プロフィールWeb制作会社様向け業務案内一般企業様向け業務案内もご覧くださいね。

PHPによる OpenAI TTS API 実装ガイド ― GPT-4o mini TTSでテキストを音声に変換

2025.04.05

本記事では、最新の OpenAI TTS モデル「GPT-4o mini TTS」を利用し、PHPでテキストを自然な音声に変換する実装手法を詳しく解説します。curl を用いたリクエスト送信、JSON形式のパラメータ設定、ファイル出力処理まで、実際のサンプルコードを交えながら、各工程のポイントとパラメータの意味について解説。

OpenAI API PHP

PHPで実装する Response API と Function Calling を活用したチャットボットの開発ガイド

2025.03.24

PHPでOpenAIのResponse APIとFunction Calling機能を活用し、チャットボットにタスク管理機能を実装する方法を解説します。モデルとの再帰的な対話処理や、独自関数によるタスク登録・照会など、具体的なコード例を通して段階的に解説します。

OpenAI API PHP

Response APIのFile Search機能をPHPで実装:ファイルから情報を取得できるチャットボットの作り方

2025.03.18

OpenAIのResponse APIに新しく追加されたFile Search機能を使って、ファイルから情報を取得できるチャットボットをPHPで実装する方法を解説します。Vector Storeの作成から、実際のコード例まで、ステップバイステップで説明していきます。

OpenAI API PHP

Response APIのWeb Search機能をPHPで実装:最新情報を取得できるチャットボットの作り方

2025.03.17

Response APIの新機能"Web Search"を使って、インターネット上の最新情報を取得できるチャットボットを作ります。PHPによる実装方法や、APIレスポンスの処理方法など、実用的な内容をコード例とともに解説していきます

OpenAI API PHP

阿部辰也へのお仕事の依頼・お問い合わせ

軽いご相談もお気軽にどうぞ!

個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP