Skip to main content
構造化出力を使うと、自由形式のテキストではなく機械可読な形式を指定できます。

対応エンドポイント

構造化出力は次のエンドポイントで使えます。
  • response_formatを使う/v1/chat/completions
  • text.formatを使う/v1/responses
  • /v1/messagesもJSONテキストを返せますが、同じresponse_formatの仕様は使いません。

リクエスト

レスポンス

仕様上の注意

  • response_format.typeにはtext、json_object、json_schemaを指定します。
  • json_schemaではスキーマオブジェクトを含めます(chat形式のペイロードではresponse_format.json_schema.schema、Responses形式ではtext.format.schema)。
  • 後続処理に渡す前に、サーバー側でJSONを検証します。

スキーマを設計する

小さなオブジェクトから始め、必須フィールドを明示し、既知のカテゴリには列挙型を使います。余分なキーを拒否する場合はadditionalProperties: falseを設定してください。リクエストのスキーマとサーバー側のバリデーターを同期し、一緒にバージョン管理します。

結果を検証する

後続処理で使う前に、結果全体を解析・検証してください。このTypeScriptの例はZodを使い、上記の天気スキーマに対応しています。
解析前に拒否、コンテンツの欠落、途中で切れた応答を処理してください。検証に失敗した場合は修正の再試行回数を制限し、その後は安全に失敗として返します。再生成には追加料金がかかる場合があります。有効なJSONでも、値の事実上の正確性や操作の許可は保証されません。 検証失敗をモデルとスキーマのバージョン別に記録し、どちらかが変わったら評価ケースを再確認してください。不正なJSONの復旧については応答修復を参照してください。
最終更新日 2026年10月2日