プロンプト手法

構造化出力

JSONなど決まったスキーマに従った出力をモデルに強制する機能。プログラムから安全に扱える。

構造化出力とは

構造化出力は、モデルの出力を、あらかじめ定義したスキーマ(JSON の型や項目の決まり)に従わせる機能です。LLM の API が提供する機能の一つで、決まった形のデータとして結果を受け取れます。

文章に混ざった JSON を、正規表現などで取り出す方法では、括弧の閉じ忘れや項目名の揺れで処理が止まることがあります。構造化出力ではスキーマに沿った形で返るため、業務システムや表計算への取り込みが安定します。

使いどころは、問い合わせの分類、書類からの項目の抜き出し、ツール呼び出しの引数づくりなど、出力をプログラムが受け取る場面です。人が読むだけの文章には、必要ないことがほとんどです。

ただし、安全上の理由で応答が拒否された場合や、出力が上限に達して途中で切れた場合は、スキーマどおりになりません。形が正しくても中身が正しいとは限らないため、受け取る側での検証は残します。

具体例

問い合わせから項目を抜き出す

悪い例では、キーの名前や値の形が毎回変わり、プログラムで受け取れません。良い例は、項目・型・選べる値・情報が無いときの扱いを決めています。API の構造化出力の機能を使う場合も、同じ内容をスキーマとして定義します。そうすれば、プロンプトだけで頼むより形が崩れにくくなります。

悪い例

この問い合わせの内容をJSONにして。 (問い合わせ本文)

良い例

次の問い合わせから項目を抜き出し、JSON だけを出力してください。 # 項目 - category:「故障」「請求」「解約」「その他」のいずれか - product:製品名(文字列) - order_id:注文番号(文字列。書かれていなければ null) - urgent:急ぎの依頼なら true、そうでなければ false # 問い合わせ (問い合わせ本文)

よくある誤解

構造化出力を使えば、中身も正しくなる。

保証されるのは形だけです。項目がそろっていても、抜き出した金額や日付が誤っていることはあります。重要な値は、元の文書と照らし合わせる手順を残します。

JSON で出力させるなら、プロンプトで頼むだけで十分だ。

プロンプトでの指定でも、多くの場合は形がそろいます。ただし、まれに崩れます。プログラムで処理する場合は、API の構造化出力の機能を使うか、受け取る側で形を検査して再実行する仕組みを用意します。

出力形式の指定

出力形式の指定は、「箇条書き3点で」「表形式で、列は担当・期限・内容」のように、出力の形をプロンプトであらかじめ決める方法です。人が読む場合は読みやすさが、後工程で使う場合は扱いやすさが上がります。構造化出力は、これを API の機能で強制するものです。プロンプトでの指定は形が崩れることがあるため、プログラムで処理する場合は構造化出力を使うと安定します。指定するときは、見本となる出力例を1つ添えると、形がそろいやすくなります。

PEP検定での位置づけ

この用語は PEP検定 シラバス第3章「生成AIの実務への活用」の範囲です。

章の学習ページを読む →
Next Step

用語を「使える力」にする

PEP検定は、こうした用語を実務のプロンプト設計と評価に結びつける力を測ります。練習問題で確かめてみてください。