ChatGPTのプロンプトの質を向上させる12のプラクティス
はじめに
今回の記事では、ChatGPTを使って仕事や学習を進めているプログラマー向けに、良質なプロンプトに関するベストプラクティスを12個、手短に紹介する。
TL;DR(本記事の結論)
- プロンプトを明確にする
- 正確なコンテクストを提供する
- 与えるタスクを細分化する
- 命令文を簡潔にする
- 意図を明示する
- 再試行する
- フィードバックを活用する
- 専門用語を活用する
- 反復的に思考して改善する
- プロンプトを順序付ける
- 例を用いて望む出力形式を明示する
- 「リーディングワード」を活用する
プロンプトを明確にする
悪い例
Pythonの文法について、色々教えてください
良い例
Pythonのimport文について、概要と使い方をソースコードを使って教えてください
正確なコンテクストを提供する
悪い例
この前に話した技術書について教えて
良い例
昨日話した『リーダブルコード』という技術書について教えて
与えるタスクを細分化する
悪い例
技術記事を作成して
良い例
技術記事の「はじめに」の部分を作成して
命令文を簡潔にする
悪い例
誰もが思いつかないような、前代未聞の技術記事のアイデアを教えて
良い例
新しい技術記事のアイデアを教えて
意図を明示する
悪い例
アプリのサンプルを探してください
良い例
Next.jsとNestJSで開発されている、アプリのサンプルを探してください
再試行する
プログラミング言語について教えてください
上述のプロンプトがあまり有用な情報を提供しなかった場合、プロンプトを以下に調整することで良い結果を得られる。
プログラミング言語の歴史と、その主な使用用途について教えてください
フィードバックを活用する
Web APIについて教えて
上述のプロンプトに対し、GPTが非常に広範な回答をした場合、それはプロンプトがあまりにも後半だった可能性が考慮される。GPTから得られたフィードバックをベースに、以下のようにプロンプトを調整して再試行しよう。
REST APIの利点と欠点について教えて
専門用語を活用する
特定の分野について深く探る場合、その分野における専門用語を使うと、GPTがより具体的で詳細な情報を提供できる。
例えば、
アーキテクチャについて教えてください
このようなプロンプトよりも、
マイクロサービスアーキテクチャについて教えてください
このようなプロンプトのほうがより具体的なアーキテクチャの知識を得られる。
反復的に試行して改善する
GPTが完全な答えを提供しなかった場合、プロンプトを微調整して何度も試すことが重要になる。
例えば、
FastAPIとSQLModel、SQLiteを活用してGraphQL APIを開発する手順を教えてください
このようなプロンプトを、
FastAPIとSQLModel、SQLiteを活用してGraphQL APIを開発する手順を、ソースコードを用いて教えてください。
ソースコードを表示する場合は、絶対パスをつけたファイル名を同時に記載してください
プロンプトを順序付ける
プロンプトの順番は出力結果に影響を与える。
例えば、
ステータスコードの種類について答えてください
とプロンプトを入力し実行したあとに、
500番のステータスコードについて答えてください
と尋ねると、より詳細でコンテクストに沿った回答を得られるだろう。
例を用いて望む出力形式を明示する
悪い例
以下のテキストに記載されている重要なキーワードを抽出する。
最初に、すべての武器の名前を抽出し、次に、特殊効果が述べられている武器を抽出する。
最後に、紹介している武器の中で最も強力な武器を抽出する。
Text: {文章の中身}
良い例
以下のテキストに記載されている重要なキーワードを抽出する。
最初に、すべての武器の名前を抽出し、次に、特殊効果が述べられている武器を抽出する。
最後に、紹介している武器の中で最も強力な武器を抽出する。
希望するフォーマット:
武器名: <コンマで区切られた武器の名前のリスト>
特殊効果が述べられている武器: -||-
紹介している武器の中で、最も強力な武器: -||-
Text: {文章の中身}
「リーディングワード」を活用する
悪い例
カレンダーを表示するPythonの関数を書いて
良い例
カレンダーを表示するPythonの関数を書いて
import
上述のプロンプトでは、import
を追加することで、モデルがPythonで書き始めるべきことを示唆してている。
おわりに
今回の記事では、ChatGPTを使って仕事や学習を進めているプログラマー向けに、良質なプロンプトに関するベストプラクティスを12個、簡潔に紹介した。
ChatGPTに良質なフィードバックを出力させるために、最優先でやるべきことは明確かつ具体的なプロンプトを、簡潔な表現で書くことである。本記事が、読者の今後のChatGPTを使った作業の改善に貢献できれば幸いである。
参考記事
Discussion