第4回は構造化・指示編です。
プロンプトエンジニアリングの続き。
AIに指示を出したとき、「なんだか期待していた回答と違う…」「ダラダラ長い文章が返ってきた…」なんて経験はありませんか?
AIから常に100点満点の回答を一発で引き出すコツ、それは プロンプト(AIへの指示文)の「構造化」 です。
今回は、曖昧さをなくしてAIを思い通りに動かすためのプロンプト設計ノウハウを分かりやすく解説します!
1. 構造化プロンプトの記述法
AIは長文のだらだらとした指示を読むのが少し苦手です。人間と同じように、 「どこに何が書いてあるか」 が整理されているほうが正確に理解できます。そこで役に立つのが 「Markdown(マークダウン)記法」 や 「XMLタグ」 です。
情報整理に使う2つのテクニック
- Markdown(マークダウン)記法
見出し(#)や箇条書き(-)、太字(**)などを使って文章を装飾する書き方です。AIは見出しの区切りをしっかり認識してくれます。 - XMLタグ
<指示>や<入力文>のように、角括弧で囲んで情報の役割を明確にする方法です。AIに「ここは指示だよ」「ここはデータだよ」と教える境界線になります。
「指示」「制約条件」「入力テキスト」をしっかり分ける!
指示を書くときは、以下の3つの要素を明確に分離するのがコツです。
- 指示(Task): AIにやってほしいこと(要約して、翻訳して、など)
- 制約条件(Constraints): 守ってほしいルール(文字数、トーン、出力形式など)
- 入力テキスト(Input): AIに処理させたい元データや文章
悪い例(箇条書きも区切りもない)
以下の記事を要約してください。300文字以内で、専門用語は分かりやすく解説して、箇条書きで出力してください。記事の内容は〜〜〜です。
良い例(MarkdownやXMLタグで構造化)
# 指示
以下の[入力テキスト]を要約してください。
# 制約条件
- 文字数は300文字以内とする
- 専門用語には噛み砕いた解説を添える
- 出力は箇条書き形式とする
# 入力テキスト
<text>
(ここに要約したい文章を貼る)
</text>
このように整理してあげるだけで、AIの読み間違いが一気に減ります!
2. Few-shotプロンプティング(例示の力)
AIに「こんな感じで回答してね!」と具体例(サンプル)を見せて教える手法をプロンプトテクニックの言葉で呼び分けます。
Shot(ショット)の数による違い
- Zero-shot(ゼロショット)
例を示さずに、指示だけで回答させる方法。
例: 「次の感情を判定して:『今日は最高の一日だった!』」 - One-shot(ワンショット)
具体例を1つだけ見せて回答させる方法。 - Few-shot(フューショット)
具体例を**複数(2〜3個程度)**見せて回答させる方法。
AIは「パターンを学習する」のが大得意です。言葉で細かくルールを説明するよりも、「こういう入力が来たら、こう返してね」という例(Few-shot)を2〜3個見せる方が、圧倒的に期待通りの回答を返してくれます。
適切な「具体例」の与え方と注意点
Few-shotを使うときは、入力と出力のペアをはっきり見せましょう。
# 指示
入力されたテキストの感情を「ポジティブ」「ネガティブ」「ニュートラル」で判定してください。
# 例示
入力: 注文した商品がすぐに届いて嬉しい!
出力: ポジティブ
入力: 画面がフリーズして動かなくなった。
出力: ネガティブ
# 入力テキスト
入力: 今日はいつも通りの一日だった。
出力:
⚠️ 注意点
- 例の偏りに注意: ポジティブな例ばかり入れると、AIもポジティブに判定しやすくなります。バリエーション豊かな例を入れましょう。
- 例の多すぎに注意: 例を10個も20個も入れるとプロンプトが長くなり、本当に伝えたい指示が埋もれてしまいます。2〜3個で十分です。
3. 出力フォーマットの完全コントロール
AIが出力する文章の形(フォーマット)を指定することで、システムへの組み込みやExcelへの貼り付けが格段にラクになります。
代表的な出力フォーマット
- JSON(ジェイソン): プログラミングでよく使われるデータ形式。システム連携に最適。
- Markdown(マークダウン): 見出しや表、箇条書きが綺麗に表示される形式。ドキュメント作成に最適。
- 表形式(TSV / CSV): タブやカンマで区切られた形式。Excelやスプレッドシートにそのままコピペしたいときに最適。
否定形(〜しないで)を使わない!明確な指示の書き方
プロンプトを書く時の重要なコツとして、「〜しないでください(否定形)」ではなく「〜してください(肯定形)」で書くというルールがあります。
AIは「〜しないで」という言葉に含まれる単語自体に引きずられてしまい、誤って実行してしまうことがあるためです。
- ❌ 悪い例(否定形)
「難しい専門用語は使わないでください。長々と書かないでください。」 - ⭕ 良い例(肯定形・具体的な代替案)
「小学生でもわかる平易な言葉を使ってください。100文字以内で簡潔に説明してください。」
何かを禁止したいときは、「代わりにどうしてほしいか」を肯定文で書くのがプロンプトマスターへの近道です!
4. 第2回のまとめ&実務活用例
今日のまとめ
- MarkdownやXMLタグを使って「指示」「制約」「入力」を明確に分けよう!
- 言葉で説明しにくいときは、2〜3個の具体例を見せるFew-shotを使おう!
- 出力形式(JSONや表など)を指定し、制約は「〜しないで」ではなく肯定文で書こう!
実務で使える!万能構造化プロンプトテンプレート
そのままコピペして使える、業務効率化用のテンプレートです。用途に合わせて書き換えて使ってみてください!
# 目的
顧客からの問い合わせメールを分析し、対応優先度と要約を作成してください。
# 制約条件
- 出力は必ずMarkdownの【表形式】とすること
- 専門用語は使わず、誰が見てもわかる表現にすること
- 理由(判定理由)は50文字以内で簡潔に書くこと
# 出力フォーマット(ヘッダー例)
| 優先度(高/中/低) | 件名要約 | 対応のポイント | 判定理由 |
# 入力テキスト
<email>
(ここに問い合わせメールの本文を貼り付ける)
</email>
これだけで、AIの回答の精度と使いやすさが劇的に上がります。ぜひ次回のプロンプト作成から試してみてくださいね!
