皆さん、こんにちは!「下町AI探究者」のガジュマロです。
googleさんの技術資料、「Prompt Engineering」の内容をかみ砕いてお伝えするプロンプト講座を、以下の内容でお伝えしています。
なお、ご自身の興味や優先順位で、下記リンクから他の記事に飛んでいただいて大丈夫です!
- 第1回:AIの仕組みと「お願い上手」の基本
- 第2回:シンプルに頼む方法&お手本を見せる方法 (ゼロショット/フューショット)
- 第3回:AIに役割・ルール・状況を伝える工夫 (ロール/システム/コンテキスト)
- 第4回:AIにもっと深く考えてもらうヒント (ステップバック/CoT)
- 第5回:実践編!Excel作業などをAIに手伝ってもらうヒント
- 第6回:総集編!お願い上手・心得帖
前回の【AIへのお願い基本のキ】では、AIへのお願いの仕方の基本となる2つのパターン、「ゼロショット(そのまま頼む)」と「ワンショット/フューショット(お手本を見せる)」について探求しました。お手本を見せることで、AIが私たちの意図をより正確に理解してくれる、というお話でした。
今回は、さらに一歩進んで、AIとの対話をもっと豊かに、もっとスムーズにするための3つの「伝え方の工夫」について見ていきましょう。
AIにキャラ設定?!役割・ルール・状況を伝えて、もっと会話をスムーズに
AIは、以下のプロンプトを追加することにより、より私たちの意図にあった回答をしてくれる可能性があります。
- AIに「役割」を演じてもらおう【ロールプロンプティング】
- 守ってほしい「ルール」を最初に伝えよう【システムプロンプティング】
- 会話の「状況」や「前提」を共有しよう【コンテキストプロンプティング】
これらの工夫を知ることで、AIがまるで人間のように、状況や役割に合わせて柔軟に話してくれるようになるかもしれませんよ。なんだかワクワクしませんか?
それでは、一つずつ見ていきましょう!
工夫1:AIに「役割」を演じてもらおう【ロールプロンプティング】
これは、AIに特定のキャラクターや専門家になりきってもらうようにお願いする方法です。専門用語では「ロールプロンプティング(Role Prompting)」と言います。「ロール」は「役割」という意味ですね。
なぜこれが効くの?
AIに役割を与えることで、その役割に合った知識や口調、視点で答えてくれるようになるからです。まるで、その道のプロに相談しているような感覚で、より的確で深みのある答えが期待できるんです。
どんな風にお願いするの?
プロンプトの最初に「あなたは〇〇です。」とか「〇〇として答えてください。」のように、役割を明確に伝えるだけです。
- 例1:旅行のプロにお願い!
「あなたは経験豊富な旅行コンシェルジュです。来月、夫婦で京都へ2泊3日の旅行を計画しています。紅葉が綺麗で、比較的ゆったりと過ごせるおすすめのコースを提案してください。」
→ こうお願いすれば、ただ「京都のおすすめは?」と聞くよりも、旅行のプロ視点での具体的なプランが出てきやすくなります。 - 例2:優しい先生にお願い!
「あなたは小学校の先生です。分数の割り算が苦手な小学5年生に、つまずきやすいポイントと、分かりやすい教え方のコツを3つ教えてください。」
→ 専門知識だけでなく、「小学生に分かりやすく」という視点や優しい口調も期待できますね。
話し方の「スタイル」も指定できる!
さらに面白いのが、役割だけでなく「話し方」のスタイルもお願いできる点です。
- 例:ユーモアを交えて! 「あなたは明るいお天気キャスターです。明日の東京の天気を、少しユーモアを交えながら、元気いっぱいに伝えてください。」 → ただ天気予報を聞くだけでなく、ちょっと楽しい気分になれるかもしれません。
色々な役割やスタイルを試してみると、AIの意外な才能や個性が見えてきて、対話がもっと楽しくなるかもしれませんよ。ぜひ、皆さんも色々な「〇〇役」をAIにお願いしてみてください!
工夫2:守ってほしい「ルール」を最初に伝えよう【システムプロンプティング】
次に紹介するのは、AIに守ってほしい「ルール」や「約束事」を、会話を始める前やプロンプトの最初に伝えておく方法です。これを「システムプロンプティング(System Prompting)」と呼びます。AIという「システム」全体に対する指示、というイメージでしょうか。
どんな時に使うの?
- 答えの「形式」を指定したい時:
「必ず箇条書きで答えてください。」
「答えは表形式でまとめてください。」
「各項目の最後に、必ず参考にした情報源を記載してください。」
…のように、出力の見た目や構成にルールを設けたい場合に便利です。
(専門的な使い方としては、JSON (※コラム参照) という決まったデータ形式で出力させることもできます。これはプログラムで後処理したい時などに便利ですが、まずは「箇条書き」や「表形式」といった簡単な指定から試してみると良いでしょう。) - 安全性や言葉遣いをコントロールしたい時:
「子供向けの説明なので、難しい言葉は使わないでください。」
「個人的な意見は含めず、客観的な事実だけを述べてください。」
「どんな状況でも、常に礼儀正しく、丁寧な言葉遣いをしてください。」
…のように、AIの応答内容やトーンに、守ってほしい一線を引くことができます。
プロンプト例:
「以下の顧客レビューを分析し、ポジティブな意見とネガティブな意見を、それぞれ箇条書きで3つずつ挙げてください。箇条書きの先頭には必ず『・』を使用してください。
レビュー:[ここに顧客レビューの文章]」
このように、最初にルールを明確に伝えておくことで、AIは「なるほど、このルールに従って答えればいいんだな」と理解し、私たちが望む形で情報を整理してくれたり、不適切な発言を避けたりしやすくなります。
工夫3:会話の「流れ」や「前提」を共有しよう【コンテキストプロンプティング】
3つ目の工夫は、「今、どういう状況なのか」「どういう話の流れなのか」といった背景情報(文脈)をAIにちゃんと伝えることです。これを「コンテキストプロンプティング(Contextual Prompting)」と言います。「コンテキスト」は「文脈」や「状況」という意味ですね。
なぜこれが必要なの?
実は、多くのAIは、人間のように過去の会話すべてを完璧に覚えているわけではありません。特に長いやり取りになると、前の話題を忘れてしまったり、話の前提を理解していなかったりすることがあります。
だから、「この前の話の続きなんだけど…」とか「こういう状況を分かった上で答えてほしいんだけど…」という風に、会話の「現在地」や「前提条件」を教えてあげる必要があるんです。
どんな風に使うの?
- 例:状況を伝えてアイデアをもらう
「状況: 私は中学生向けの科学クラブで、予算500円以内でできる面白い実験を探しています。テーマ: 電気や磁石を使った、安全で驚きのある実験。
上記の状況とテーマを踏まえて、具体的な実験アイデアをいくつか提案してください。」
→ こうすることで、「中学生向け」「予算内」「電気・磁石」「安全」といった条件をAIが理解した上で、的確なアイデアを出してくれることが期待できます。 - 例:前の会話を踏まえて質問する
「(前の会話でAIがいくつかの選択肢を提示した後で)ありがとうございます。先ほど提案していただいた選択肢のうち、2番目のメリットとデメリットをもう少し詳しく教えていただけますか?」
→ 「先ほど提案していただいた」と伝えることで、AIに会話の流れを思い出させ、的確な回答を引き出しやすくなります。
このように、コンテキスト(状況や文脈)をしっかり伝えることで、AIとの会話がちぐはぐになったり、「あれ?話が通じてないな…」と感じたりするのを防ぐことができます。
3つの工夫、どう違う?どう使う?
さて、「役割(ロール)」「ルール(システム)」「状況(コンテキスト)」という3つの工夫を見てきました。ちょっと整理してみましょう。
- ロールプロンプティング: AIに「誰として」答えてほしいか(例:先生、編集者)
- システムプロンプティング: AIに守ってほしい「全体的なルールや形式」(例:箇条書きで、丁寧語で)
- コンテキストプロンプティング: AIに理解してほしい「今の状況や会話の流れ」(例:予算は〇円、前の話の続き)
これらは、どれか一つだけを使うこともできますし、組み合わせて使うことも可能です。
例えば、
「あなたは経験豊富なシェフ(ロール)です。必ずレシピを手順ごとに箇条書き(システム)で記述してください。冷蔵庫にある鶏肉と玉ねぎを使って(コンテキスト)、30分以内に作れる簡単なメインディッシュのレシピを教えてください。」
のように、全部盛り込むこともできます。
とはいえ、今の時点で、出てきたテクニックを必死に覚えて使いこなす、という必要はないと思います。まずは「AIに役割を与えてみようかな」「今回は箇条書きでお願いしてみようかな」「今の状況を伝えてから質問してみようかな」という風に、試しにプロンプトを変更してみて、AIの反応が今までとどう変わってくるのを楽しんでみるのがよいのではないでしょうか。
まとめ:AIとの対話をもっと豊かにする3つの工夫
今回は、AIへのお願いの仕方をさらにレベルアップさせるための3つの工夫、「役割」「ルール」「状況」を伝えるプロンプティングについて探求しました。
これらの工夫を取り入れることで、AIとの対話はもっと具体的で、もっと私たちの意図に沿った、質の高いものになっていく可能性があります。ぜひ、皆さんも普段のAIとのやり取りの中で、これらの工夫を試してみてくださいね。
次回予告
さて、基本のお願いの仕方から、役割やルールを伝える工夫まで見てきました。次回は、AIに「もっと深く考えてもらう」ための、ちょっと面白いお願いのヒント、「ステップ・バイ・ステップで考えて!」をご紹介します。こう頼むと、AIの返答はどう変わるのでしょうか?
次回の探求も、どうぞお楽しみに!
最後までお読みいただき、ありがとうございました!
【☕ ちょっと寄り道コラム:JSONって何? – 情報の書き方ルールです -】
先ほど、「システムプロンプティング」の説明の際に、「JSONという形式で出力させることもできる」と少し触れました。この時、「JSONって何?」と思われた方もいらっしゃるかもしれませんので、ここでおまけの補足です!
**JSON(ジェイソン)**というのは、一言でいうと、コンピューターがデータをやり取りしたり、保存したりする時に使う、「情報の書き方のルール」の一つなんです。
どんなルールなの?
人間がメモを取る時に、箇条書きにしたり、項目ごとに整理したりしますよね。JSONもそれに似ていて、情報を「項目名」と「その内容(値)」のペアにして、分かりやすく整理するための書き方ルールです。
具体的には、こんな記号を使って書かれます。
- { } (波カッコ):全体をこれで囲みます。
- ” ” (ダブルクォーテーション):項目名や、文字の値をこれで囲みます。
- : (コロン):項目名と値の間に入れます。
- , (カンマ):項目と値のペアが複数ある時に、区切りとして使います。
- [ ] (角カッコ):複数の値をリスト(一覧)にしたい時に使います。
例えば、名刺の情報なら…
{
"名前": "下町 太郎",
"会社名": "下町AI探究所",
"部署": "探究部",
"メールアドレス": "taro.shitamachi@example.com"
}
こんな感じです。どうでしょう? なんとなく、「名前」という項目には「下町 太郎」という内容が、「会社名」という項目には「下町AI探究所」という内容が入っている、という関係性が分かりやすくないですか?
この書き方ルールは、人間にとっても比較的読み書きしやすく、コンピューターにとっても処理しやすいという特徴があります。
どんな時に使われるの?
このJSONという形式は、インターネットの世界では非常によく使われています。
- ウェブサイトが裏側で情報をやり取りする時
- スマートフォンのアプリがサーバーと通信する時
- ソフトウェアの設定を保存するファイルの中身
など、様々な場面で活躍しています。
AIとのやり取りで、なんで便利なの?
私たちがAIにお願い(プロンプト)する時にも、このJSONは便利な場面があります。
- AIに情報を整理して出力してほしい時:
例えば、「おすすめのレストランを3つ教えて」とお願いする代わりに、「おすすめのレストラン3つの情報を、『店名』『ジャンル』『予算』の項目でJSON形式で教えて」と頼むと、AIは以下のように、きれいに整理された形で答えを返してくれる可能性が高まります。
{
"店名": "キッチン下町",
"ジャンル": "洋食",
"予算": "1500円"
},
{
"店名": "そば処 探究庵",
"ジャンル": "蕎麦",
"予算": "1000円"
},
{
"店名": "カフェ・ド・ガジュマロ",
"ジャンル": "カフェ",
"予算": "800円"
}
ただ文章で返ってくるよりも、後で情報を見返したり、比較したりするのが楽になりますよね。
- AIの答えを他のプログラムで使いたい時:
JSONはコンピューターが扱いやすい形式なので、AIが出力したJSONデータを、例えばExcelで読み込んだり、別のプログラムで利用したりするのが簡単になります。(これは少し応用的な使い方ですね)
- AIに構造的に考えてもらう助けになることも:
AIに「このルール(JSONの形)に従って情報を整理してね」とお願いすることで、AIがより構造的に物事を考え、結果的に的外れな答え(ハルシネーション)が減る、という効果も期待できる場合があります。
まとめ
JSONは、なんだか難しそうな記号の集まりに見えるかもしれませんが、基本的には「情報を『項目名』と『値』のペアで整理して書くためのルール」です。
AIにお願いする時に、「JSON形式で」という一言を加えるだけで、情報をきれいに整理して返してくれたり、後で使いやすい形でデータをもらえたりすることがある、便利な方法の一つとして覚えておくと、いつか役立つかもしれませんね。
以上、寄り道コラムでした。
コメント