Structured Outputs
Structured Outputs
AIの出力を事前に定義したスキーマに沿わせる機能。JSON モードの発展版で、形式の一致を担保しやすくなる。
Structured Outputsとは
Structured Outputs は、AIの出力を事前に定義したスキーマ(例: JSON Schema)に沿わせる機能です。システム連携の場面で、「決まったフィールドで返ってくる」ことを前提にした処理を組み立てやすくなります。
OpenAI のドキュメントでは、JSONモード(JSON mode)の発展版として位置づけられており、両者は別の機能として整理されています。詳細はOpenAI公式ガイドを参照してください。
JSONモードとの違い
- JSONモード: 出力が妥当なJSONであることは担保されるが、スキーマ(フィールド構成)への一致までは保証しない
- Structured Outputs: スキーマへの一致をより強く担保する。ただし、refusal(安全上の理由でモデルが応答を拒否するケース)など、スキーマに沿わない応答が返る状況もある
どちらの機能も完全な保証ではなく、どの状況で外れる可能性があるかをドキュメントで確認したうえで、受け側のパース処理にフォールバックを用意するのが実務的です。
例(スキーマ指定のイメージ)
{
"type": "object",
"properties": {
"顧客名": {"type": "string"},
"相談区分": {"type": "string", "enum": ["税務", "労務", "法務"]},
"緊急度": {"type": "integer", "minimum": 1, "maximum": 5},
"要点": {"type": "array", "items": {"type": "string"}}
},
"required": ["顧客名", "相談区分", "緊急度", "要点"]
}
このようなスキーマを渡すと、AIは対応するJSON構造で返すよう動作します。
士業業務での使いどころ
- メール自動分類: 問い合わせを区分・優先度付けで構造化
- 書類からの情報抽出: 契約書から当事者名・期間・金額などをフィールド化
- ワークフロー連携: AIの応答を次のシステムに渡しやすい形で受け取る
- データ登録: AI生成結果を業務システムへ投入
注意点
- 機能名や対応モデル、仕様は AIベンダーごと・モデルごとに異なる。導入前に最新の公式ドキュメントを確認する
- スキーマ適合が期待どおりに働かないケース(refusal・長すぎる入力等)を想定し、受け側でのバリデーションと再試行設計を用意する
- 機密情報を含む入力では、利用するAPIのデータ取り扱いポリシーも事前に確認する
