概要
- chatgptに関する個人的に良く用いるプロンプトパターンのスニペットを記述
- 応用的な使い方と便利な外部ツールとの連携について紹介
A. 【基本】
1. ロール・制約条件を与える
テンプレ
あなたは、プロの〇〇〇です。
以下の入力文と制約条件を元に、【出力内容】を出力してください。
# 制約条件:
1. 【満たすべき制約条件1】
2. 【満たすべき制約条件2】
# 入力:
・【入力文章】
# 出力:
例
2. 要約タスク
テンプレ
以下のテキストを要約し、各項目20文字程度の箇条書きでまとめてください。
テキスト: """【テキスト】"""
例
3. コード生成
テンプレ
/*
【実装して欲しい内容】
*/
例
4. コードレビュー
テンプレ
ロール:
あなたはプロの〇〇として振舞ってください。
あなたに解決してほしい問題:
以下の【内容】を【直してほしい内容】に直してください。
【内容】
タスク1:
あなたは【プロの〇〇】として、最適なプログラムを書いてください。
タスク2:
あなたは【プロの〇〇】として、そのプログラムに対してレビューを行ってください。
例
ロール:
あなたはプロのpythonエンジニアとして振舞ってください。
あなたに解決してほしい問題:
以下の関数と挙動が一致する関数を、再帰とlist内包表記を用いてシンプルに書き直してください。
def fibonacci(n):
if n <= 0:
return []
elif n == 1:
return [0]
elif n == 2:
return [0, 1]
else:
fib = [0, 1]
for i in range(2, n):
fib.append(fib[i-1] + fib[i-2])
return fib
タスク1:
あなたはプロのエンジニアとして、最適なプログラムを書いてください。
タスク2:
あなたはプロのエンジニアとして、そのプログラムに対してレビューを行ってください。
B. 【応用】
1. Zero-shot プロンプト
- Zero-shotプロンプトはGPTに対して、直接指示を与えるタスクです。
2. Few-shot プロンプト
テンプレ
- あらかじめ答え方の例を与えることで、タスクの実行方法を学習させる手法
- 答え方のフォーマットを揃えて、例を複数(1つ以上・few-shot)提供することでGPTがより正確に答えを出します。
〇〇〇してください
Q: 【問題】
A: 【問題の答え】
Q: 【問題】
例
3. Chain-of-Thought (CoT) プロンプト
- few-shotでは、【問題】と【答え】を対にして渡したが、CoTでは【問題】に対して、【問題の解法 + 答え】 を対にする。
- GPTに思考経路を与える手法
テンプレ
〇〇〇してください
Q: 【問題】
A: 【問題解法 + 答え】
Q: 【問題】
例
4. Zero-shot / CoT プロンプト
テンプレ
ステップバイステップで考えて
- 通常プロンプトに+αで、
ステップバイステップで考えよう
という一文を追加することにより、モデルの性能を上げる手法です。
例
- 以下の例の場合、リンゴの個数は3+2+8=13個が正解ですが、リンゴの個数を1個と間違えています。
- このプロンプトの最後の行に
ステップバイステップで考えよう
という文を追加します。- 推論の手順を項目で並べ、リンゴの個数計算に成功します。
C. 【外部ツールとの連携】
【自動翻訳】Google chrome拡張ツールVoice in
との連携
- chrome拡張機能 Voice in とchatgptを組み合わせて用いる
テンプレ
以降のスレッドで以下のルールを設けます。
・ スレッドに投下された文字列の先頭が「Start GPT」という単語で始まっている場合、以下のフォーマットでテキスト出力を行ってください。
[原文]
入力された元の文章を表示 (ただし、先頭についている「Start GPT」のキーワードは除く。また元の文章は音声の文字起こしなので、明らかに文脈からそれている内容は補間・修正を行って表示)
[訳文]
上の[原文]を英訳した内容を表示