構造化出力とは
構造化出力は、モデルの出力を、あらかじめ定義したスキーマ(JSON の型や項目の決まり)に従わせる機能です。LLM の API が提供する機能の一つで、決まった形のデータとして結果を受け取れます。
文章に混ざった JSON を、正規表現などで取り出す方法では、括弧の閉じ忘れや項目名の揺れで処理が止まることがあります。構造化出力ではスキーマに沿った形で返るため、業務システムや表計算への取り込みが安定します。
使いどころは、問い合わせの分類、書類からの項目の抜き出し、ツール呼び出しの引数づくりなど、出力をプログラムが受け取る場面です。人が読むだけの文章には、必要ないことがほとんどです。
ただし、安全上の理由で応答が拒否された場合や、出力が上限に達して途中で切れた場合は、スキーマどおりになりません。形が正しくても中身が正しいとは限らないため、受け取る側での検証は残します。
具体例
問い合わせから項目を抜き出す
悪い例では、キーの名前や値の形が毎回変わり、プログラムで受け取れません。良い例は、項目・型・選べる値・情報が無いときの扱いを決めています。API の構造化出力の機能を使う場合も、同じ内容をスキーマとして定義します。そうすれば、プロンプトだけで頼むより形が崩れにくくなります。
この問い合わせの内容をJSONにして。 (問い合わせ本文)
次の問い合わせから項目を抜き出し、JSON だけを出力してください。 # 項目 - category:「故障」「請求」「解約」「その他」のいずれか - product:製品名(文字列) - order_id:注文番号(文字列。書かれていなければ null) - urgent:急ぎの依頼なら true、そうでなければ false # 問い合わせ (問い合わせ本文)