プロンプトとは、AI モデルに何を作ってほしいかを伝えるために渡す入力のことです。ChatGPT や Claude、Gemini では、入力欄に打ち込むメッセージと、それに添付するもの(ファイル、スクリーンショット、貼り付けたエラー)がプロンプトになります。モデルはプロンプトを読み、その続きとして返答を書きます。あなたが何を望んでいるかを知る手段はほかにないので、プロンプトが依頼のすべてです。
この言葉は英語の日常的な意味から来ています。prompt とは、相手が話したり動いたりするきっかけを与えることです。AI プロンプトはそのきっかけにあたります。質問でも、指示でも、タスクを添えた文章でも、絵の説明でもかまいません。
プロンプトに含めるもの
1行の質問も立派なプロンプトで、1行で答えられる内容ならそれで十分なことも多いです。依頼が具体的になるにつれて、プロンプトには決まったいくつかの要素が集まってきます。
- タスク:何をするか。たいていは動詞です。説明する、書く、直す、要約する、翻訳する、比較する。
- コンテキスト:モデルが推測できない事実。あなたが誰か、すでに何を知っているか、結果を何に使うか。
- 入力:作業の対象となる素材。コード、メール、表、記事。
- 形式:答えの形。リスト、表、短い3段落、JSON。
- 制約:守るべき範囲。文字数、使ってはいけない言葉、変えてはいけない部分。
弱いプロンプトと強いプロンプトの差は、気の利いた言い回しであることはまれです。差を生むのは、これらの要素がそろっているかどうかです。「リストを並べ替える関数を書いて」では、言語もデータも並び順もモデルの推測まかせです。この3つの事実を書き足せば推測は不要になります。プロンプトの書き方では、各要素をオン・オフして違いを確かめられる例を使って1つずつ解説しています。
プロンプトの例
プロンプトの見た目は、何を返してほしいかによって変わります。タブを切り替えると、文章用、コード用、学習用のプロンプトと、それぞれの典型的な返答を確認できます。
お疲れさまです。月曜日にいただける予定だったレポートをまだ受け取っていません。クライアントへ期限どおりに数字を送るため、本日中にいただく必要があります。いつごろご用意いただけるか教えていただけますか。よろしくお願いします。
画像プロンプトも仕組みは同じですが、返ってくるのは絵です。画像生成 AI(一部のチャットアプリに組み込まれているものを含む)は、被写体、場面、画風、構図を説明したプロンプトによく応えます。
日の出の都会のバルコニーで、小さなロボットが植物に水をやっている水彩イラスト。やわらかく暖かい光、引きの構図。
細部を1つ書くたびに、モデルが代わりに決めてしまう選択肢が1つ減ります。「水彩」を省けば写真風になるかもしれませんし、「引きの構図」を省けばバルコニーが画面から切れてしまうかもしれません。
プロンプト、返答、システムプロンプト
AI モデルとの一般的なチャットには3種類のテキストが関わっています。名前を区別しておくと理解しやすくなります。
- プロンプト(ユーザーメッセージとも呼ぶ)は、今回の依頼であなたが送るものです。
- 返答(レスポンス、コンプリーションとも呼ぶ)は、モデルが書いて返すものです。
- システムプロンプトは、会話全体に適用される常設の指示です。アプリや開発者が設定し、カスタム指示やプロジェクトの指示などの設定から自分で書き足すこともできます。
下のブロックには3つすべてが入っています。システムプロンプトはルールを一度だけ決め、ユーザーが繰り返さなくても返答はそのルールに従います。
惜しいです!ヒントを1つ出しますね。print(list(range(1, 4))) を実行して、その出力と range に渡した2つの数を見比べてみてください。
何か気づくことはありますか?ループのどこを変えてみますか?
システムプロンプトがなければ、モデルはおそらく修正方法 range(1, 11) をすぐに教えてしまうでしょう。システムプロンプトが、このチャットのすべてのメッセージでの振る舞いを変えたのです。どこで設定し、何を書けばよいかはシステムプロンプトで解説しています。
プロンプトは最後のメッセージだけではない
会話の中で、モデルは人間のように前のやりとりを覚えているわけではありません。メッセージを送るたびに、アプリはシステムプロンプトとそれまでの会話を、新しいメッセージを末尾に付けてモデルに送ります。モデルが実際に応答しているのは、このつなげたテキスト全体です。
ここから実用上のことが2つ言えます。1つ目に、前のメッセージはその後の答えにも影響し続けます。10メッセージ前に「TypeScript を使って」と言ったなら、その指示はまだ生きています。2つ目に、モデルが一度に受け取れるテキストの量には上限があり、トークンという単位で数えます。会話がそれを超えると、アプリは古い部分を削るか圧縮するか、新しいチャットを始めるよう求めるしかなく、チャットの冒頭で出した指示が効かなくなることがあります。この上限の仕組みはトークンとコンテキストウィンドウで説明しています。
プロンプトはデータベースの検索ではない
モデルはそれ自体では何も調べません。返答を小さなテキストの断片ごとに生成し、各断片をプロンプトと学習で身につけたパターンをもとに選んでいます(Web 検索やファイルのツールを持つアプリは、先に資料を取ってきてプロンプトに加えますが、モデルが目の前のテキストから書くことは変わりません)。そのため、同じプロンプトでも2回実行すると少し違う返答が返ることがあり、モデルが持っていない事実を尋ねると、間違ったことを自信満々に答えることもあります。いわゆるハルシネーションです。
ここから2つの習慣が導かれます。答えのよりどころにしてほしい事実(文書、数字、エラーメッセージなど)は、モデルが知っていると期待せずにプロンプトの中に入れること。そして、返答に含まれる事実、数字、引用は使う前に必ず確認することです。
よくある質問
AI におけるプロンプトとは何ですか?
プロンプトとは、AI モデルに渡す入力のことです。入力する質問や指示、素材に加えて、添付する画像やファイルも含まれます。モデルはプロンプトを読み、その続きとして返答を生成します。あなたの依頼についてモデルが知っていることは、すべてプロンプトとその周りの会話から来ています。
プロンプトという言葉の意味は?
英語の prompt は、日常語では「相手に何かを言わせたり、させたりするきっかけを与える」という意味です。AI では、モデルに答えやコード、画像を出力させるきっかけとなるテキストを指します。日本語ではそのままカタカナで「プロンプト」と書き、韓国語でも 프롬프트 と英語をそのまま借りています。
良いプロンプトの例を教えてください。
「リストは知っているが辞書は知らない人に向けて、Python の辞書とは何かを説明してください。実際の例を1つ使い、100字程度に収めてください。」このプロンプトは、タスク、読み手のレベル、含める内容、長さを指定しています。同じ依頼の弱いバージョンは「辞書を説明して」だけで、これではそのすべてをモデルが推測することになります。
プロンプトは質問と同じですか?
質問はプロンプトの一種です。プロンプトは指示(「このメールを書き直して」)でもよく、素材にタスクを添えたもの(貼り付けたエラーと「なぜ失敗するの?」)、生成したい画像の説明、モデルに続きを書かせる文章の書き出しでもかまいません。
プロンプトとシステムプロンプトの違いは何ですか?
プロンプトは、1回の依頼ごとに送るメッセージです。システムプロンプトは、会話全体に適用される別の指示のまとまりで、たとえば「あなたは家庭教師です。完全な解答は絶対に教えないでください」のようなものです。開発者は API で設定し、チャットアプリではカスタム指示やプロジェクトの指示が同じ役割を果たします。詳しくはシステムプロンプトを参照してください。