はじめに
GitHub Copilotの回答精度を上げるためには、いくつかのテクニックを知っておくと便利です。本記事では、GitHub Copilotをより賢く、快適に使うための具体的な方法について解説します。
1. 関連ファイルを開く/指定する
GitHub Copilotは、現在エディタで開いているファイルや周辺の情報をもとにコードを提案します。
そのため、関連するファイルを複数同時に開いておき、不要なファイルはすべて閉じておくことで、よりコンテキストに即した、的確な提案を受けることができるようになります。
また、「コンテキスト変数」を活用して、明示的にファイルを添付することも可能です。明示的に指定することで、生成されるコードをより精度の高いものにすることができます。
2. 適切なコメント入れる
GitHub Copilotは、コメント文をプロンプトとして解析し、コメント内容に沿ったコードを生成します。この特性を最大限活用するためには、以下の点に注意してコメントを書くとGitHub Copilotの精度向上が期待できるようになります。
ファイルの先頭:
ファイル全体の目的や概要、インプット・アウトプットなどを簡潔に記述します。
クラスや関数の前:
そのクラスや関数で行う処理や目的、引数・戻り値などの説明を記述します。
コード内の変数や処理ブロック:
重要な変数や複雑な処理の流れは、ブロック単位で意図や概要を記述します。
3. 意味のある命名をする
ファイル内の情報をGitHub Copilotは読み取るので、関数や変数の命名にも気を使います。「data1」のような曖昧な名前ではなく、「user_list_for_sorting」のように、処理内容が端的に分かる意味のある名前をつけることで、GitHub Copilotがどのような処理が求められているかを理解しやすくなります。
4. タスクが変わったら「新規チャット」でリセット
GitHub Copilot Chatは過去のやり取りを記憶していますが、別の話題に移る際はそれが「ノイズ」になることがあります。全く異なる実装を始める時は、新しいスレッドを作成することで、情報の混在や誤った提案を防ぎ、常にクリーンな状態で対話を始めましょう。
5. より良いプロンプトエンジニアリング
GitHub Copilotも裏側では生成AIを利用しているので、生成AIにおける「プロンプトエンジニアリング」の考え方が有効です。GitHub Copilotに指示する際はできるだけ具体的かつ明確なプロンプトにすることで、意図した応答が得られる可能性が高まります。例えば、以下のような点に注意してプロンプトを作成します。
実現したいことを具体的かつ明確に書く
悪い例:「これをやってください。」
良い例:「リスト内のすべての整数の合計を計算する関数を作成してください。」
入力値や出力値、前提条件を明示する
悪い例:「ユーザ情報を返すAPIを書いて。」
良い例:「ユーザID(整数)を受け取り、そのユーザの指名(文字列)とメールアドレス(文字列)を返すPythonのAPIエンドポイントの例を書いてください。」
期待するアルゴリズムやライブラリがある場合は具体的に指定する
悪い例:「ソートしてください。」
良い例:「PythonでNumPyライブラリを使用して、配列を降順でソートする方法を教えてください。」
複雑な処理や複数の工程は段階的に指示する
悪い例:「画像をダウンロードしてリサイズして保存するプログラムを作って。」
良い例:(段階的な指示):
1. 「指定したURLから画像をダウンロードするPython関数を書いてください。」
2. 「ダウンロードした画像を幅300ピクセルにリサイズするコードを追加してください。」
3. 「リサイズした画像を`resize.jpg`というファイル名で保存するコードを書いてください。」
必要に応じて「例」を示す
悪い例:「リストをカンマ区切りの文字列にしてください。」
良い例(例を付記):「Pythonでリスト[`apple`,`banana`,`cherry`]をカンマ区切りの文字列`apple`,`banana`,`cherry`に変換するコードを書いてください。」
まとめ
本記事は割と基本的な、初心者向けの内容でしたが、いかがでしたでしょうか。
「こうするともっといいよ!」など、もし改善点があればぜひ教えてもらえるとうれしいです。
気が向いたら、もう少し深掘りして、開発シーン別の GitHub Copilot の Tips みたいなものも書いてみようかな、と考えてます。