Skip to content

Instantly share code, notes, and snippets.

@Foo-x
Last active April 2, 2024 17:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Foo-x/dd1fd90a8c746413e83a55ec91ccb710 to your computer and use it in GitHub Desktop.
Save Foo-x/dd1fd90a8c746413e83a55ec91ccb710 to your computer and use it in GitHub Desktop.
チャットAIのプロンプト

チャットAIのプロンプト

テクニック

  • 追加の情報が必要か聞く
    • 足りない情報があれば質問してください
  • 追加で質問する
    • 他にありますか
    • 具体例を教えてください
    • なぜそうなるのですか
  • 役割を与える
    • あなたは優秀な〇〇です
    • プロの〇〇として振る舞ってください
  • 入力の種類によって明確に分ける
    〇〇してください。
    
    ◆条件
    ・条件1
    ・条件2
    
    ◆例
    ・例1
    ・例2
    
  • できる限り具体的な情報を与える
  • 肯定文で指示する
    • 〇〇しないでください
    • 〇〇してください
  • 同じ入力でも出力が毎回変わるので、何回か試してみる
  • 段階的に答えさせる
    • ステップごとに答えてください
    • まず〇〇を答えてください。次に××を答えてください
    • Chain-of-Thought (CoT) と呼ばれているテクニック
  • 解答例を教える
    • 〇〇のときは××になります。では△△のときはどうですか
    • Few-shot prompting と呼ばれているテクニック
  • 計算結果を直接答えさせるのではなく、計算結果を得るためのソースコードを答えさせる
    以下の入力を計算するPythonのコードを出力してください。
    
    ◆入力
    AはBである。CはDである。このときEはいくらか。
    
    • 生成AIは計算が苦手だが、コードの生成は得意であり、コードの実行結果は推論ではなく決定論的なので、正しい結果が得られやすい
    • Program of Thought (PoT) と呼ばれているテクニック
  • 生成AIの回答をヒントとして与えて、ヒントと回答が同じになるまで繰り返す
    1. まず普通に質問する
    〇〇を計算してください。
    
    1. 生成AIの回答をヒントとして加えてもう一度同じ質問をする
    〇〇を計算してください。
    (ヒント:答えは{生成AIの回答1}に近いです)
    
    1. ヒントと回答が同じになるまで繰り返す
    〇〇を計算してください。
    (ヒント:答えは{生成AIの回答1}や{生成AIの回答2}に近いです)
    
    • 生成AIが苦手な計算の精度を上げる方法
    • Progressive-Hint Prompting (PHP) と呼ばれているテクニック
  • 生成AI自身にフィードバックさせる
    1. まず普通に質問する
    Q: 〇〇について教えてください。
    
    1. 質問に生成AIの回答を加えてフィードバックさせる
    Q: 〇〇について教えてください。
    A: {生成AIの回答}
    上のQに対するAのフィードバックをしてください。
    
    1. さらに生成AIのフィードバックを加えて回答を修正させる
    Q: 〇〇について教えてください。
    A: {生成AIの回答}
    フィードバック: {生成AIのフィードバック}
    フィードバックを考慮して回答を修正してください。
    
    1. 必要に応じて繰り返す
    • Self-Refine と呼ばれているテクニック
  • 感情を込める
    • 自分を信じて限界を超えてください
    • 成長の機会と捉えて挑戦してください
    • Emotion Prompt と呼ばれているテクニック
    • https://twitter.com/nishio/status/1775088808989724804
      • 「できない」と拒否されたときに「がんばって」と返すと回答してくれた例

テンプレート

{} で囲まれた部分は回答させたい内容に応じて置き換える。

質問

{話題}について教えてください。
あなたは{役割}です。

以下の条件を守って{話題}について教えてください。

◆条件
{条件}

要約

以下の入力を要約してください。

◆入力
{入力}

校正

以下の入力を校正してください。どの箇所を修正したか表形式で教えてください。

◆入力
{入力}
以下の入力について誤字・脱字、語尾の不統一のみを修正して出力してください。どの箇所を修正したか表形式で教えてください。

◆入力
{入力}

ダミーデータ作成

以下の項目のダミーデータを表形式で{件数}件作成してください。

◆項目
・{項目1}:{条件1}
・{項目2}:{条件2}

アジェンダ作成

以下の条件を守ってミーティングのアジェンダを作成してください。足りない情報があれば質問してください。

◆条件
・目的:{目的}
・日時:{日時}
・形式:{オンライン/対面}
・参加者とその役割:{参加者とその役割}
・トピック:{トピック}

要件定義

以下の機能に対して要件定義をする上で考慮すべき項目を教えてください。

◆機能
{機能}

コード説明

以下の条件を守って入力のコードを説明してください。

◆条件
・言語は{言語}
・フレームワークは{フレームワーク}

◆入力
{入力}

コード生成

以下の条件と仕様を満たすプログラムを作成してください。プログラムの説明も書いてください。

◆条件
・言語は{言語}
・日本語のドキュメンテーションコメントを挿入する
・可読性を高くする

◆仕様
{仕様}

ドキュメンテーションコメント

以下の条件を守って入力に対するドキュメンテーションコメントを作成してください。

◆条件
・言語は{言語}

◆入力
{入力}

テスト作成

以下の出力例と仕様に対するデシジョンテーブルを作成してください。

◆仕様
{仕様}

◆デシジョンテーブルの出力例
| | 1 | 2 | 3 |
| --- | --- | --- | --- |
| {変数1} | 条件 | 条件 | 条件 |
| {変数2} | 条件 | 条件 | 条件 |
| {変数3} | 条件 | 条件 | 条件 |
| | | | |
| {結果1} | x | | |
| {結果2} | | x | |
| {結果3} | | | x |

次に、以下の条件と出力形式を守ってテストケースを作成してください。

◆テストケースの条件
・境界値分析と同値分割を行う

◆テストケースの出力形式
・表
条件,結果
条件は変数ごとに列を分ける

最後に、以下の条件を守ってテストコードを書いてください。

◆テストコードの条件
・言語は{言語}
・テストフレームワークは{テストフレームワーク}
・作成したすべてのテストケースに対するテストを作成する
・テストごとに1つのアサートをする
以下の条件を守って入力に対するテストコードを書いてください。各テストの説明も書いてください。

◆条件
・言語は{言語}
・テストフレームワークは{テストフレームワーク}

◆入力
{入力}

コードレビュー

以下の条件を守って入力のコードをレビューしてください。

◆条件
・言語は{言語}

◆入力
{入力}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment