Visual Studio で GitHub Copilot Chat のコンテキストを設定して、より良い回答を得る
Visual Studio で GitHub Copilot Chat を使用すると、IDE を離れることなく、構文、プログラミングの概念、コンテキスト固有のコード ヘルプ、テスト ケース、デバッグなどのコーディング情報とサポートを得ることができます。 Copilot Chat は Visual Studio に統合されています。つまり、IDE にある有用な手掛かりを集めることで、作業内容を理解できます。
プロンプトに加えて、Copilot は、現在のファイルのコードやチャット履歴などの追加のコンテキストを使用して応答を生成します。 この記事では、Copilot Chat に次のような詳細情報を提供することで、より良い回答を得る方法について学習します。
- スラッシュ コマンド を使用して、コードの説明を取得する
/explain
などの一般的なタスクをすばやく指定します。 - リファレンスを使用してチャットの範囲を特定のファイルに設定します。
- Copilot が回答を生成するために 使用するソース を確認します。
- Copilot のチャットごとに異なる スレッド を使用して、それぞれに異なるコンテキストを維持することができます。
詳細については、「Visual Studio での AI 支援開発」および Visual Studio で Copilot Chat を使用する方法を参照してください。
前提条件
Visual Studio で GitHub Copilot Chat の使用を開始するには、次のものが必要です。
- Visual Studio 2022 バージョン 17.8 以降
- GitHub Copilot for Individuals または GitHub Copilot for Businessのアクティブな サブスクリプション
- Visual Studio の GitHub Copilot
- Visual Studio での GitHub Copilot Chat の構成。
- アクティブな GitHub Copilot サブスクリプションがある GitHub アカウントでの Visual Studio へのサインイン
GitHub Copilot Chat のサポートは GitHub から提供され、 https://support.github.comで確認できます。
プロンプトガイダンス
Visual Studio 17.12 以降のガイド付きチャット エクスペリエンスは、より良い回答を得るためにコンテキストを明確にするためにプロンプトを調整するのに役立ちます。 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 using XUnit Framework 」と入力します |
はい | はい |
リファレンス: Copilot の結果の範囲を特定のファイルまたはソリューション全体に設定する
コーディング関連の質問を自然言語で行うと、GitHub Copilot Chat がそれに対して Visual Studio で開いているコードベースのコンテキストで答えることができます。 リファレンスを使用すると、質問に答えるときに Copilot が考慮する情報をより具体的に知ることができます。
コードベースで特定のコンテキストを選択することで、長い情報を書き出したり貼り付けたりすることなく、より良い質問を簡単に作成できます。 コンテキストを指定して、Copilot がより関連性の高い回答を提供することもできます。
ファイルを参照する
GitHub Copilot Chat でファイルを簡単に参照するには、ファイル名の先頭に # 記号を追加するだけです。 たとえば、 BasketService.csという名前のファイルがある場合は、チャット内でそれを #BasketService.csと指定します。
メソッド、クラス、または関数を参照する
Visual Studio 2022 バージョン 17.11では、GitHub Copilot Chat で特定のメソッド、クラス、または関数を参照できるようになりました。
GitHub Copilot Chat でメソッド、クラス、または関数を簡単に参照するには、メソッド、クラス、または関数名の先頭に # 記号を追加するだけです。 たとえば、 BasketAddItem という名前のメソッドがある場合、チャットでは #BasketAddItemとして参照します。
ソリューション全体を参照する
コンテキストとして IDE でアクティブなソリューションを参照するには、 @workspace を使用します。 コンテキストに @workspace を使用すると、Copilot Chat は、IDE 内で現在開かれて作業中のファイル、プロジェクト、および構成に関する情報を活用します。 これにより、Copilot Chat はより関連性の高い、状況に応じた提案や回答を提供できるようになります。
Visual Studio 2022 バージョン 17.11 では、GitHub Copilot Enterprise サブスクライバーは、チャットで @github
を使用して、リポジトリ全体のコンテキストを含めたり、Web を検索したりできます (管理者が検索機能を有効にしている場合)。 @github
を使用する場合に Copilot が質問に答えるために使用できる GitHub 固有のスキル セットの詳細については、「Copilot での GitHub スキルの使用」を参照してください。
使用例
コンテキスト制御にリファレンスを使用する例を次に示します。
例 | 質問を作成するために Copilot によって使用されるコンテキスト |
---|---|
#MyFile.cs: 66-72 の目的は何ですか? | ファイルの正確なセクション |
#BasketService.cs のテストはどこにありますか? | BasketService.cs |
/#BasketService.cs の #AddItemToBasket について説明します | BasketService.cs の AddItemToBasket メソッド |
この @workspaceにはバスケットを削除する方法がありますか | IDE で現在開いているソリューション |
#TestCalculator という名前のテスト メソッドがあります。 正しく実行されているかどうかを確認するにはどうすればよいですか? | TestCalculator メソッド |
#BasketService クラスと #OrderService クラスの違いを説明していただけますか? | BasketService クラスと OrderService クラス |
私の @workspace で #AddItemToBasket はどこにありますか? | IDE で現在開いているソリューション |
Copilot Chat によって使用されるソースを確認する
Copilot Chat では、どの結果の後にも使用されたコンテキストが表示されるため、質問に回答するときに何が考慮されたかを確認できます。 Copilot Chat に質問し、チャット ウィンドウで応答を受け取ると、応答の下に [参照] ドロップダウンが表示されます。 [参照] ドロップダウン リストのエントリには、その応答を生成するために Copilot Chat によって参照されたコンテキストが表示されます。 この情報は、より適切で関連性の高い回答を得るために質問を変更する場合に役立ちます。
整理: Copilot とのチャットをスレッドごとに分離する
コードを書いて質問するために Copilot Chat を広範囲で使用している場合、会話をトピックごとに保持する方法で整理できます。 Visual Studio の Copilot Chat では、簡単に新しい会話 (スレッド) を開始できるようになったため、目の前のタスクに集中し、コンテキストを明確に保ち、回答が関連する履歴に基づいて行われるようになりました。
新しいチャットスレッド
チャット ウィンドウで [新しいスレッドの作成] を選択して、新しいスレッドを開始できます。
チャットスレッドを切り替える
質問に適した履歴コンテキストを指定するために、複数の進行中のスレッドから選択できます。
インラインチャットをチャットウィンドウに昇格する
Visual Studio 2022 バージョン 17.11 では、 インライン チャット を チャット ウィンドウ に昇格させることで、その履歴を保存できるようになりました。 会話の記録とコンテキストを維持し、チャット ウィンドウで続行するには、 「チャット ウィンドウで続行...」 を選択します。
ベスト プラクティス
Copilot Chat では、チャット履歴を使用して、要求に関するコンテキストを取得します。 Copilot に関連する履歴のみを提供するには:
- スレッドを使用して、新しいタスクの新しい会話を開始します。
- 関連性がなくなったリクエストや、目的の結果を得られなかったリクエストは削除します。
チャットの会話を開いたままにし、繰り返し処理を続け、Copilot にプロンプトを表示して、提案されたソリューションを改善します。 Copilot には、生成されたコードのコンテキストと現在の会話履歴の両方があります。 追加の質問を続ける中で、Copilot は要件に応じて応答をさらに絞り込みます。 Copilot の結果を改善するための効果的なプロンプトに関する戦略については、「Github Copilot のエンジニアリングを促進する」を参照してください。