💬

ChatGPTのプロンプトの質を向上させる12のプラクティス

2023/06/24に公開

はじめに

今回の記事では、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を使った作業の改善に貢献できれば幸いである。

参考記事

https://qiita.com/iwaken71/items/45b3cf0019c381a59f6d

https://help.openai.com/en/articles/6654000-best-practices-for-prompt-engineering-with-openai-api

GitHubで編集を提案

Discussion