Visual Studio で GitHub Copilot Chat のコンテキストを設定して、より良い回答を得る

Visual Studio で GitHub Copilot Chat を使用すると、IDE を離れることなく、構文、プログラミングの概念、コンテキスト固有のコード ヘルプ、テスト ケース、デバッグなどのコーディング情報とサポートを得ることができます。 Copilot Chat は Visual Studio に統合されています。つまり、IDE にある有用な手掛かりを集めることで、作業内容を理解できます。

この記事では、Copilot Chat に次のような詳細情報を提供することで、より良い回答を得る方法について学習します。

  • スラッシュ コマンドを使用して、コードの説明を取得する /explain などの一般的なタスクをすばやく指定します。
  • リファレンスを使用してチャットの範囲を特定のファイルに設定します。
  • Copilot が回答を生成するために使用するソースを確認します。
  • Copilot のチャットごとに異なるスレッドを使用して、それぞれに異なるコンテキストを維持することができます。

詳細については、「Visual Studio での AI 支援開発」およびVisual Studio で Copilot Chat を使用する方法を参照してください。

前提条件

Visual Studio で GitHub Copilot Chat の使用を開始するには、次のものが必要です。

一般的なタスクに Copilot Chat のスラッシュ コマンドを使用する

Copilot Chat のスラッシュ コマンドは、一般的な開発タスクに意図をすばやく設定するのに役立ちます。 特定のスラッシュ コマンドを使用して質問を作成することで、長い質問を書き出すことなく、より良い回答を得ることができます。

スラッシュ コマンドはチャット ウィンドウで、またはインライン コード アシスタンスを使って、変更するコードのインラインで直接使用できます。 エディターで開いているコード ファイルを変更または追加するのに役立つコマンドは、インライン コード アシスタントとチャット ウィンドウの両方で機能しますが、一般的なコーディングの質問に関するコマンドは、チャット ペインでのみ機能します。

コマンド 使用方法 チャット ウィンドウ インライン チャット
/doc 指定した、または選んだコードのコメントを追加します。
例:
- /doc DeleteBasketAsync method in BasketService.cs
- 目的のコードを選び、「/doc」と入力します
はい はい
/explain コードの説明を取得します。

例:
- /explain the AddItemToBasket method in BasketService.cs
- 目的のコードを選び、「/explain」と入力します
はい はい
/fix 選んだコードの問題の修正プログラムを提案します。
例:
- /fix the SetQuantities method in BasketService.cs
- 目的のコードを選び、「/fix」と入力します
はい はい
/generate 指定した質問に回答するコードを生成します。
例: /generate code to add two numbers in Calculator.cs
はい はい
/help Copilot Chat の使用に関するヘルプを表示します。
例: /help
はい はい
/optimize 選んだコードの実行時間を分析して改善します。
例 :
- /optimize the AddItemToBasket method in BasketService.cs
- 目的のコードを選び、「/optimize」と入力します
はい はい
/tests 選んだコードの単体テストを作成します。
例: 目的のコードを選び、「/tests」と入力します
はい はい

インライン チャット ビューとチャット ウィンドウのスラッシュ コマンドのスクリーンショット。

リファレンス: Copilot の結果の範囲を特定のファイルまたはソリューション全体に設定する

コーディング関連の質問を自然言語で行うと、GitHub Copilot Chat がそれに対して Visual Studio で開いているコードベースのコンテキストで答えることができます。 リファレンスを使用すると、質問に答えるときに Copilot が考慮する情報をより具体的に知ることができます。 コードベースで特定のコンテキストを選択することで、長い情報を書き出したり貼り付けたりすることなく、より良い質問を簡単に作成できます。 コンテキストを指定して、Copilot がより関連性の高い回答を提供することもできます。

ファイルを簡単に参照するには、ファイル名の先頭に # 記号を追加するだけです。 たとえば、BasketService.cs という名前のファイルがある場合は、チャット内でそれを #BasketService.cs と指定します。

Copilot Chat の参照のスクリーンショット。

#solution を使用して、コンテキストについて IDE でアクティブなソリューションを参照します。

Copilot Chat でソリューション コンテキストを参照しているスクリーンショット。

コンテキスト制御にリファレンスを使用する例を次に示します。

質問を作成するために Copilot によって使用されるコンテキスト
#MyFile.cs: 66-72 の目的は何ですか? ファイルの正確なセクション
#BasketService.cs のテストはどこにありますか? BasketService.cs
/explain #BasketService.cs の AddItemToBasket メソッド BasketService.cs の AddItemToBasket メソッド
この #solution に削除バスケット メソッドはありますか IDE で開いている現在のソリューション

Copilot Chat によって使用されるソースを確認する

Copilot Chat では、どの結果の後にも使用されたコンテキストが表示されるため、質問に回答するときに何が考慮されたかを確認できます。 Copilot Chat に質問し、チャット ウィンドウで応答を受け取ると、応答の下に [参照] ドロップダウンが表示されます。 [参照] ドロップダウン リストのエントリには、その応答を生成するために Copilot Chat によって参照されたコンテキストが表示されます。 この情報は、より適切で関連性の高い回答を得るために質問を変更する場合に役立ちます。

Copilot Chat の [使用されている参照] ドロップダウンのスクリーンショット。

整理: Copilot とのチャットをスレッドごとに分離する

コードを書いて質問するために Copilot Chat を広範囲で使用している場合、会話をトピックごとに保持する方法で整理できます。 Visual Studio の Copilot Chat では、簡単に新しい会話 (スレッド) を開始できるようになったため、目の前のタスクに集中し、コンテキストを明確に保ち、回答が関連する履歴に基づいて行われるようになりました。

チャット ウィンドウで [新しいスレッドの作成] を選択して、新しいスレッドを開始できます。

Copilot Chat の [新しいスレッドの作成] アイコンのスクリーンショット。

質問に適した履歴コンテキストを指定するために、複数の進行中のスレッドから選択できます。

Copilot Chat で進行中のスレッドを切り替えるスクリーンショット。