はじめに
GitHub Copilotのプロンプトについて、よりよい応答を得るための方法をまとめます。
プロンプトとは
プロンプトは、GitHub CopilotなどのAIエージェントに対して行う要求のことを指します。
例を挙げると、Copilot Chatに尋ねる質問や、エージェントにコードを生成させる際の指示などがあります。
Copilotは、このプロンプトに加えて、現在開いているファイルやチャット履歴などの追加のコンテキストを使って応答を生成します。
よりよい応答を得るためにすること
項目Aの中でさらに見出しをつけたい場合は、「見出し3」を利用してください。
最初に概要を示す
Copilotのプロンプトを記述する際には、まず、やりたいことについての大まかな説明を書いてから、個別の要件や仕様などを一覧で記述すると、応答の精度があがりやすくなります。
例を示す
プロンプトに例を与えると、応答の精度があがりやすくなります。
ここで与える例とは、たとえば、関数の引数と戻り値であったり、フォーマットの形式等を指します。
また、単体テストも例として機能します。
複雑なタスクを単純なタスクに分解する
Copilotに複雑なタスクや大規模なタスクを依頼すると、精度が低下したり応答を得られない場合があります。
その場合、タスクを分解してより小さい粒度で指示を与えると、応答の精度があがりやすくなります。
曖昧さを回避する
曖昧な用語の使用はできるだけ回避することが望ましいです。
例えば、「これ」が現在のファイル、最後のCopilotの応答、または、特定のコードブロックを指す可能性がある場合には、「何が行われるか」を尋ねないでください。
そうではなくて、ファイルや関数名等を明示したり、最後の応答にに対する質問であることを明記することが望ましいです。
また、曖昧さの回避はライブラリに対しても該当します。
例えば、一般的でないライブラリを使用している場合は、ライブラリに対する説明を明記する。
特定のライブラリを使用する場合は、バージョンを明記するなどです。
関連するコードを示す
IDEでCopliotとやり取りする場合には、なるべく関連するコードを開き、無関係なコードを閉じると精度があがりやすくなります。
また、キーワードを使って、手動でコンテキストを渡すこともできます。
詳細はこちらを参照してください。
やり取りを繰り返して精度を上げる
Copliotが思ったような応答を返さない場合は、やり取りを重ねることで精度を高めることができます。
コーディング時にCopilotを使用して提案を取得する場合は、Copilotからの提案を完全に削除して、最初からやり直すことができます。
Copilot Chatを使用している場合は、次の要求で前の応答を参照することができます。
履歴に関連性をもたせる
Copilot Chatでは、チャット履歴を使用して要求に対するコンテキストを取得します。
Copilotに関連する履歴のみを指定するには以下の方法があります。
- スレッドを使用して新しいタスクの新しい会話を開始する
- 関連性がなくなった、または、目的の結果が得られなかった要求を削除する
適切なコーディングプラクティスに従う
コードベースをベストプラクティスに沿って記述したり、読みやすいコードとすることで、Copilotからの提案や説明の精度があがりやすくなります。
例えば、
- 一貫性のあるコードスタイルとパターンを使用する
- 変数と関数にわかりやすい名前をつける
- コードにコメントを追加する
- モジュール型のスコープ付きコンポーネントにする
- 単体テストを含める
さいごに
よりよりCopilotのプロンプトを書くために気をつけるべき点をまとめました。