Visual Studio で GitHub Copilot Chat のコンテキストを設定して、より良い回答を得る
Visual Studio GitHub Copilot Chat を使用すると、IDE から離れることなく、構文、プログラミングの概念、コンテキスト固有のコード ヘルプ、テスト ケース、デバッグなどのコーディング情報とサポートを取得できます。 Copilot Chat は Visual Studio に統合されています。つまり、IDE に含まれているものから役に立つ手掛かりを集めることで、作業内容を理解できます。
プロンプトに加えて、Copilot は、現在のファイル内のコードやチャット履歴などの追加のコンテキストを使用して応答を生成します。 この記事では、Copilot Chat に次のような詳細情報を提供することで、より良い回答を得る方法について説明します。
- スラッシュ コマンド を使用して、コードの説明を取得する
/explain
などの一般的なタスクをすばやく指定します。 - visual Studio 17.12 以降でコンテキストを絞り込むには、ガイド付きチャット エクスペリエンス と カスタム命令 を使用します。
- 参照を用いて、チャットを特定のファイルにスコープします。
- Copilot が回答を生成するために使用するソースを確認します。
- Copilot チャットごとに異なる スレッド を使用して、それぞれ異なるコンテキストを維持できるようにします。
Visual Studio での AI 補助開発についてさらに知り、Visual Studio で Copilot Chat を使用する方法を学びましょう。
前提 条件
Visual Studio で GitHub Copilot Chat の使用を開始するには、次のものが必要です。
- Visual Studio 2022 バージョン 17.8 以降
- Copilot にアクセスできる GitHub アカウントを使って Visual Studio にサインインします
**GitHub Copilot for Freeを使用できます。 サインアップして AI を活用して、より迅速かつ効率的にコーディングします。 - Visual Studio の GitHub Copilot
- Visual Studio の GitHub Copilot Chat
GitHub Copilot Chat のサポートは GitHub によって提供され、https://support.github.comで入手できます。
プロンプト ガイダンス
Visual Studio 17.12 以降のガイド付きチャット エクスペリエンスは、より良い回答を得るためにコンテキストを明確にするためにプロンプトを調整するのに役立ちます。 GitHub Copilot Chat では、コンテキストが不明な場合に明確な質問が表示されるようになりました。
カスタム命令を有効にする
カスタム命令機能を使用すると、事前に指定したコンテキストの詳細をチャットの質問に自動的に追加できます。 Copilot Chat では、応答の生成時に、チームの作業方法、使用するツール、プロジェクトの詳細など、特定のコンテキストに合わせて調整された手順が使用されます。
カスタム命令を構成するには:
- リポジトリ ルートに
.github/copilot-instruction.md
カスタム命令ファイルを作成または追加します。 - Tools>Options>GitHub>Copilot を使用して Visual Studio の機能を有効にします>、(プレビュー) .github/copilot-instructions.md ファイルからカスタム命令を読み込んで要求に追加できるようにします。.
カスタム手順は、チャット ビューまたはインライン チャットには表示されません。 ただし、Copilot によって使用される場合、.github/copilot-instructions.md
ファイルは応答の参照リストに一覧表示されます。
一般的なタスクに Copilot Chat でスラッシュ コマンドを使用する
Copilot Chat のスラッシュ コマンドは、一般的な開発タスクの意図をすばやく設定するのに役立ちます。 特定のスラッシュ コマンドを使用して質問を作成することで、長い質問を書き出すことなくより良い回答を得ることができます。
チャット ウィンドウのでスラッシュ コマンドを使用したり、変更しようとしているコード内で直接インラインで使用したり、インライン コード アシスタンス 使用したりできます。 エディターで開いているコード ファイルを変更または追加するのに役立つコマンドは、インライン コード アシスタントとチャット ウィンドウの両方で機能しますが、一般的なコーディングの質問のコマンドはチャット ウィンドウでのみ機能します。
コマンド | 使用方法 | チャットウィンドウ | インライン チャット |
---|---|---|---|
/doc | 指定したコードまたは選択したコードのコメントを追加します。 例: - /doc DeleteBasketAsync method in BasketService.cs - 目的のコードを選択し、「 /doc 」と入力します |
はい | はい |
/説明する | コードの説明を取得します。 例: - /explain the AddItemToBasket method in BasketService.cs - 目的のコードを選択し、「 /explain 」と入力します |
はい | はい |
/修理する | 選択したコードの問題の修正プログラムを提案します。 例: - /fix the SetQuantities method in BasketService.cs - 目的のコードを選択し、「 /fix 」と入力します |
はい | はい |
/生成する | 指定された質問に回答するコードを生成します。 例: /generate code to add two numbers in Calculator.cs |
はい | はい |
/ヘルプ | Copilot Chat の使用に関するヘルプを表示します。 例: /help |
はい | はい |
/最適化 | 選択したコードの実行時間を分析して改善します。 例: - /optimize the AddItemToBasket method in BasketService.cs - 目的のコードを選択し、「 /optimize 」と入力します |
はい | はい |
/テスト | 選択したコードの単体テストを作成します。 例: 目的のコードを選択し、「 /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として参照します。
ソリューション全体を参照する
@workspace を使用して、IDE でアクティブなソリューションをコンテキストで参照します。 コンテキストに @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 クラス |
#AddItemToBasket は私の @workspace のどこにありますか? | IDE で開いている現在のソリューション |
Copilot Chat で使用されるソースを確認する
Copilot Chat では、すべての結果の後に使用されたコンテキストが表示されるため、質問に回答するときに考慮された内容を確認できます。 Copilot チャットに質問し、チャット ウィンドウで返信を受け取ると、応答の下に 参照 ドロップダウンが表示されます。 参照 ドロップダウン リストのエントリには、その応答を生成するために Copilot Chat によって参照されるコンテキストが表示されます。 この情報は、質問を変更して、より適切で関連性の高い回答を得るのに役立ちます。
整理: Copilot とのチャットをスレッドに分離する
コードを記述するときに Copilot Chat を広範囲に使用して質問する場合は、会話をトピック上に保持する方法で整理できます。 Copilot Chat for Visual Studio では、新しい会話 (スレッド) を開始して、目の前のタスクに集中し、コンテキストを明確に保ち、回答が関連する履歴に基づくようにする簡単な方法が提供されるようになりました。
新しいチャット スレッド
チャット ウィンドウで [新しいスレッドの作成] を選択して、新しいスレッドを開始できます。
チャット スレッドの切り替え
複数の進行中のスレッドから選択して、質問に適切な履歴コンテキストを提供できます。
インライン チャットをチャット ウィンドウに昇格させる
Visual Studio 2022 バージョン 17.11では、チャット ウィンドウに昇格することで、インライン チャット の履歴を保持できるようになりました。 [チャット ウィンドウで続行 ]を選択します。、会話のレコードとコンテキストを維持し、チャット ウィンドウで続行します。
ベスト プラクティス
Copilot Chat では、チャット履歴を使用して、要求に関するコンテキストを取得します。 Copilot に関連する履歴のみを提供するには:
- スレッドを使用して、新しいタスクの新しい会話を開始します。
- 関連性がなくなった要求、または目的の結果が得られなかった要求を削除します。
チャットの会話を開いたままにし、繰り返し考慮しながら、Copilot にプロンプトを与えて、提案されたソリューションを改善します。 Copilot には、生成されたコードのコンテキストと現在の会話履歴の両方があります。 追加の質問を続ける中で、Copilot は要件に応じて応答をさらに絞り込みます。 「GitHub Copilot のプロンプト エンジニアリング」で、Copilot からより良い結果を得るための効果的なプロンプト作成の戦略を参照してください。