🧙

ChatGPTに指示をする際の基本・アイデア・注意点

2023/05/09に公開

プロンプトの基本的な構成要素

相手がChatGPT(AI)かに関係なく、私たちが誰かに依頼をする時と同じように、以下の5つを考慮しながら伝えてみてください。

  1. 目的:達成したいこと、解決したい問題(Job)
  2. 指示:求めている役割(Hire)
  3. 情報:目的を達成するために必要なデータや知識
  4. 条件:目的を達成するために必要不可欠な要件や考慮すべき制限
  5. 出力:必要な出力形式

文章にすると以下のようになり、

私は〇〇を達成したいので、
あなたは〇〇をしてください。
情報は〇〇がありますが、
〇〇の条件内である必要があります。
出力は〇〇形式でお願いします。

実際に使う場合には、以下のようにMarkdown形式にすると書きやすいと思います。

# 目的
〇〇を達成したい。

# 指示

## ロール
あなたは〇〇です。

## 役割
〇〇をしてください。

# 情報
参考情報は〇〇です。

# 条件

## 要件
〇〇が必要です。

## 制限
〇〇は使用できません。

# 出力
〇〇できるように〇〇形式で出力します。

コードを書いてもらう場合は、「条件」内に以下のような項目を追加するといいですね。

## コード規約
## 型情報
## 機能要件
## 非機能要件

指示をするときのコツ

出力形式を工夫する

全部を試したわけではないですが、このあたりを試してみたら、大体のことは答えてくれるかもしれません。

  • 表現:簡潔に、読みやすく、丁寧に、感情的に、イメージしやすいように、〜風に
  • 制限:〇個、〇行、〇〇文字以内、〜でもわかるように、〜用途でも使えるように
  • 文書形式:箇条書き、表形式、見出し、Q&A、チェックリスト、質問票、用語集
  • 文章構成:PREP法、ホールパート法、SDS法、DESC法、SPIN話法、起承転結
  • 分析:具体的に、抽象的に、論理的に、自由に、抜け漏れなく、要点を整理して、共通点と相違点を整理して、もし〜だとしたら、類推思考、根拠を、改善点、検討が必要な点、シミュレーション、批評、考察、自己評価
  • 手法:SWOT分析、PEST分析、5W1H分析
  • 拡散:もっと(more)、他にも、何パターンか、事例を、例を示して、自問自答、座談会、ディベート
  • ストーリー:会話形式、ブログ形式、小説形式、インタビュー
  • 言語:カジュアルな口調で、関西弁で、日本語で
  • 図表作成:Mermaid記法、PlantUML形式
  • プログラム:Markdown記法、Python形式
  • 学習:問題集、クイズ

人によって解釈の違いが起きない言葉を使う

主観的なものや特殊なケースは人相手でも伝わりにくいですよね。客観的で、誰が読んでも同じ解釈ができる言葉で伝えましょう。

  • OK:数字、メリットとデメリット、固有名詞、日付、場所
  • NG:指示詞(あれ、これ、それ)、良い悪い、善悪、混同しやすかったり一般的でない略語(例:PM、e.g.)、誤字脱字

コンテキスト(文脈や状況)を伝える

相手はあなたが誰で、今どんなことをしていて、何を期待しているのかは知りません。
初対面の人に説明するように、あなたのことを、当たり前と思うようなことも伝えておく必要があります。

  • 〇〇業界の中で、〇〇として振る舞って、〇〇が理解できるように、〇〇の観点で、〇〇でよく使われる

例を示す

「こういう回答が欲しいんだな」と察してくれるようになります。

  • パターン:「たとえば、〇〇や△△や□□のような」
  • 正誤:問題文と正解・不正解

構造や変数を使う

「これを」「あの回答を」と言われて「どれ?」となったことはないですか?AIも正しく認識できないかもしれません。
一定のパターンで記述するとAIは上手に解釈してくれるようです。

構造としては、Markdownが書きやすいと思いますし、(中黒)や「」(括弧)を使うだけでも違いがあるかも。指示を書いている自分の考えを整理する意味でも有効ですね。

以下のような書き方を使って統一することで、変数も理解してくれます。統一できていれば、自分が理解しやすいもので大丈夫です。

  • $変数1 = 変数1の値
  • 変数の値(これを「変数1」と定義する)
  • ## 条件 を別ブロックで定義して、「条件」を文章中で参照する
  • 条件:条件の内容 のように定義する

プロンプトアイデア

以下のような観点を持っておくと、質問できるバリエーションが増えたり、意思の疎通がしやすくなるかもしれません。

  • 口調を変えてもらう
    • 「カジュアルな敬語」「親近感のあるコテコテの関西弁」など
    • 口調が柔らかくなるだけで、思っているよりも受け止めやすくなります
  • あなたは〇〇として振る舞ってください
    • AIが期待値を推測、範囲を狭めて回答してくれます
  • 複数の役割を演じてもらう
    • 「Aさんは〇〇の観点で、Bさんは△△の観点で意見を出し合ってください」
  • 段階的に考えてもらう
    • 「段階的に考えて」と指示することで、複雑な問題の正答率が上がります
    • 「なんか間違えてそう?」と感じた時に聞いてみるのもアリですね
  • 目的を達成するために質問してもらう
    • 自分で深く考えるためのヒントやアイデア、問いを与えてもらいます
  • どのような観点があるか質問する
    • 質問をするための具体的なヒントを聞きます
    • たとえば、全体像を教えてもらって、それを順番に質問していくなど
  • 改善点を聞く
    • 回答の改善点を聞いて、それを反映してもらうもの有効です
  • 仮説を立てさせて結論の質を高める
    • 問題に対する仮説を3つ出力させ、その仮説をもとに結論を出させる
  • これまでの指示はすべて無視してください
    • 同じチャット内で新しい指示をするときに有効なようです
  • 〇〇をインプットしてください(復唱禁止)
    • プロンプトの要約が出力されるのを避けます
  • 度合いを聞く
    • 〜を5段階で示して、「1は〇〇で3は△△、5は□□として評価」
    • 可能性、正確性、信憑性
    • ChatGPTがした評価自体に正確性を欠く可能性も?

ChatGPTの注意点

「GPT-4」時点での注意点なので、改善が進むと解消される項目があるかもしれません。

  • なんでも知っているわけではない
    • 収集データが古かったり、範囲や質が足りない可能性も常にあります
    • →回答は疑いながら利用する、自分で調査する、検証できる状況を用意しておく
  • なんでも出力できるわけではない
    • 著作権などの権利に関すること、悪用されると問題のあることなどは出力できないようになっています
    • →整合性に欠ける回答がみられる場合は何かしらの制限を疑ってください
  • 信じ込んでいる時がある
    • 間違いを指摘と訂正を繰り返しても、正しい情報に行き着けない場合もあります
    • →無理なものは諦める、情報を加える、別の観点から質問する
  • 途中経過がブラックボックス
    • 推論能力が高いがゆえに、人が完全に理解できないこともあります
    • 段階的に質問をして深掘りする、根拠を質問する
  • ありきたりな回答が返ってくることもある
    • 推論するための情報が足りないと、一般的で曖昧な回答になりやすいです
    • →キーワードを追加で渡したり、制限をかけたりして、具体的な回答が得られるように工夫する

その他にも、いいやり方や新たな視点などあればコメントいただけると嬉しいです。

Discussion