次の方法で共有


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

GitHub Copilot Chat に依頼して、コードの提案、コードの説明、単体テストの生成、コード修正の提案を行うことができます。 プロンプトに加えて、Copilot は、現在のファイル内のコードやチャット履歴などの追加のコンテキストを使用して応答を生成します。

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

Visual Studio での AI 補助開発についてさらに知り、Visual Studio で Copilot Chat を使用する方法を学びましょう。

前提 条件

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

GitHub Copilot Chat のサポートは GitHub によって提供され、https://support.github.comで入手できます。

プロンプト ガイダンス

Visual Studio 17.12 以降のガイド付きチャット エクスペリエンスは、より良い回答を得るためにコンテキストを明確にするためにプロンプトを調整するのに役立ちます。 GitHub Copilot Chat では、コンテキストが不明な場合に明確な質問が表示されるようになりました。

GitHub Copilot Chat でのガイド付きチャット エクスペリエンスのスクリーンショット。

カスタム命令を有効にする

カスタム命令機能を使用すると、事前に指定したコンテキストの詳細をチャットの質問に自動的に追加できます。 Copilot Chat では、応答の生成時に、チームの作業方法、使用するツール、プロジェクトの詳細など、特定のコンテキストに合わせて調整された手順が使用されます。

カスタム命令を構成するには:

  1. リポジトリ ルートに .github/copilot-instructions.md カスタム命令ファイルを作成または追加します。
  2. Tools>Options>GitHub>Copilot を使用して Visual Studio の機能を有効にします>、(プレビュー) .github/copilot-instructions.md ファイルからカスタム命令を読み込んで要求に追加できるようにします。.

カスタム手順は、チャット ビューまたはインライン チャットには表示されません。 ただし、Copilot によって使用される場合、.github/copilot-instructions.md ファイルは応答の参照リストに一覧表示されます。

プロンプト ファイルを使用する

リポジトリに再利用可能なプロンプト ファイルを作成して、頻繁に使用されるプロンプトを実行または共有できるようになりました。

プロンプト ファイルを作成するには:

  1. #参照を使用して、メソッド、クラス、ファイルなどのソリューションからの特定の情報を含めるために、プロンプト ボックスで通常と同じようにプロンプトを記述します。 他のプロンプト ファイルを参照して、共有の手順を確認することもできます。
  2. プロンプトをマークダウン ファイルにコピーし、リポジトリのルートにある .github/prompts フォルダーに .prompt.md 拡張子を付けて保存します。

プロンプト ファイルを使用するには:

  1. チャット入力 #prompt: 入力して、 .github/prompts フォルダーからプロンプト ファイルを参照するか、チャット入力のアイコンをクリックして➕コンテキストとして追加します。
  2. 追加の詳細を追加するか、プロンプトをそのまま入力します。

GitHub Copilot Chat でプロンプト ファイルを使用するスクリーンショット。

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

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

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

コマンド 使用方法 チャットウィンドウ インライン チャット
/ドキュメント 指定したコードまたは選択したコードのコメントを追加します。
例:
- /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」と入力します
はい はい

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

Visual Studio 2022 バージョン 17.13 では、ユーザーがスラッシュ コマンドを入力すると、コマンドによってプロンプトが自然言語で展開され、コマンドで使用されるコンテキストが表示されます。

チャット プロンプトに画像を添付する

Visual Studio 17.14 Preview 1 以降での Copilot Chat のビジョン統合により、チャット プロンプトに 画像を添付 して、応答を改善するための追加のコンテキストを Copilot に提供できます。 画像をスコープと、スラッシュ コマンドなどの他のコンテキスト機能と組み合わせて使用して、カスタマイズされた応答を生成します。

次の例では、Copilot は添付イメージを解釈してプランを生成し、カラフルなブレイクアウト ゲームをゼロから作成するコードを提案します。

Copilot チャットで画像を追加するシナリオの例のスクリーンショット。

リファレンス: Copilot の結果の適用範囲を特定のファイルまたはプロジェクト全体に設定する

自然言語でコーディング関連の質問をすることができます。GitHub Copilot Chat は、Visual Studio で開かれているコードベースのコンテキストでこれに答えます。 リファレンスを使用すると、Copilotが質問に答えるときに考慮したい情報についてより具体的に知ることができます。

コードベースで特定のコンテキストを選択することで、長い情報を書き出したり貼り付けたりすることなく、より良い質問を簡単に作成できます。 コンテキストを指定すると、Copilot はより関連性の高い回答を提供することもできます。

ファイルを参照する

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

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

メソッド、クラス、または関数を参照する

Visual Studio 2022 バージョン 17.11では、GitHub Copilot Chat で特定のメソッド、クラス、または関数を参照できるようになりました。

GitHub Copilot Chat でメソッド、クラス、または関数を簡単に参照するには、メソッド、クラス、または関数名の先頭に # 記号を追加するだけです。 たとえば、BasketAddItem という名前のメソッドがある場合は、チャット内でそれを #BasketAddItemとして参照します。

Visual Studio の GitHub Copilot Chat のメソッドへの参照のスクリーンショット。

ソリューション全体を参照する

@workspace を使用して、IDE でアクティブなソリューションをコンテキストで参照します。 コンテキストに @workspace を使用する場合、Copilot Chat は、現在開いているファイル、プロジェクト、構成に関する情報を活用し、IDE 内で作業を行います。 これにより、Copilot Chat は、より関連性の高いコンテキストに対応した提案と回答を提供できます。

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

Visual Studio 2022 バージョン 17.11 では、GitHub Copilot Enterprise サブスクライバー@github をチャットで使用して、リポジトリ全体のコンテキストを含め、Web を検索できるようになりました (管理者 によって検索が有効になっている場合)。 @github使用時に Copilot が質問に回答するために使用できる GitHub 固有のスキルのコレクションの詳細については、「Copilotでの GitHub スキルの使用」を参照してください。

Copilot Chat で GitHub スキルを使用するスクリーンショット。

[参照出力] ウィンドウ

これで、チャットのコンテキストとして出力ウィンドウを使用して、質問をしたり、出力ログに関するヘルプを表示したりできるようになりました。 サポートされている出力ウィンドウには、ビルド、デバッグ、テスト、ソース管理、パッケージ マネージャー、またはその他のアクティブな出力ウィンドウ ウィンドウが含まれます。

次のいずれかの方法で、チャットの出力ログを参照します。

  • #output を使用して、チャットで直接参照します。
  • チャット入力のアイコンを➕選択し、コンテキストとして Output logs 追加します。
  • たとえば、 出力ログを確認し、このエラーを修正するのに役立ちます
  • 出力ウィンドウで右クリックし、[Explain with Copilot]\(Copilot で説明する\) を選択してアタッチします。

Copilot Chat のコンテキストとしての出力ウィンドウのスクリーンショット。

使用例

コンテキスト制御に参照を使用する例を次に示します。

質問 を形成するために 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 Chat の [参照] ドロップダウンのスクリーンショット。

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

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

新しいチャット スレッド

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

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

チャット スレッドの切り替え

複数の進行中のスレッドから選択して、質問に適切な履歴コンテキストを提供できます。 前のスレッドには Ctrl+PgDown 、チャット ウィンドウの次のスレッドには Ctrl+PgUp を使用できます。 Ctrl+Shift+T はスレッドドロップダウンを展開します。

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

インライン チャットをチャット ウィンドウに昇格させる

Visual Studio 2022 バージョン 17.11では、チャット ウィンドウに昇格することで、インライン チャット の履歴を保持できるようになりました。 [チャット ウィンドウで続行 ]を選択します。、会話のレコードとコンテキストを維持し、チャット ウィンドウで続行します。

インライン チャットで進行中のスレッドをチャット ウィンドウに昇格させるスクリーンショット。

ベスト プラクティス

Copilot Chat では、チャット履歴を使用して、要求に関するコンテキストを取得します。 Copilot に関連する履歴のみを提供するには:

  • スレッドを使用して、新しいタスクの新しい会話を開始します。
  • 関連性がなくなった要求、または目的の結果が得られなかった要求を削除します。

チャットの会話を開いたままにし、繰り返し考慮しながら、Copilot にプロンプトを与えて、提案されたソリューションを改善します。 Copilot には、生成されたコードのコンテキストと現在の会話履歴の両方があります。 追加の質問を続ける中で、Copilot は要件に応じて応答をさらに絞り込みます。 「GitHub Copilot のプロンプト エンジニアリング」で、Copilot からより良い結果を得るための効果的なプロンプト作成の戦略を参照してください。

次の手順