共用方式為


在 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。 註冊並利用 AI 以更快且更有效率地撰寫程式代碼。
  • Visual Studio 中的 GitHub Copilot
  • Visual Studio 中的 GitHub Copilot Chat

GitHub 會支援 GitHub Copilot Chat,且可在 https://support.github.com 取得此支擾。

提示指引

Visual Studio 17.12 和更新版本中的引導式聊天體驗可協助您精簡提示,以釐清內容以取得更好的答案。 GitHub Copilot Chat 現在會引導您釐清內容不清楚的問題。

GitHub Copilot Chat 引導聊天體驗的螢幕快照。

啟用自定義指示

自定義指示功能可讓您自動將預先指定的內容詳細數據新增至聊天問題。 Copilot Chat 在生成回應時,會使用這些根據您特定情境量身打造的指示,例如,您的小組運作方式、您使用的工具,或專案的具體細節。

若要設定自訂指示:

  1. 在存放庫根目錄中建立/新增 自定義指示檔案 .github/copilot-instruction.md
  2. 透過 Tools>Options>GitHub>Copilot> 選取 [][預覽] 啟用從 .github/copilot-instructions.md 檔案載入自定義指示,並新增至要求。

在 [聊天] 檢視或內嵌聊天中看不到自定義指示。 不過,當 Copilot 使用時,.github/copilot-instructions.md 檔案會列在回應的 [參考] 清單中。

在 Copilot 聊天中使用 slash 命令執行一般工作

Copilot Chat 中的斜線命令可協助您快速設定一般開發工作的意圖。 藉由使用特定的斜線命令來形成您的問題,您可以取得更好的答案,而不需要寫出很長的問題。

您可以在聊天視窗中使用斜線命令,或使用內嵌程式碼助理,直接內嵌在您想要修的程式碼中。 有助於修改或新增至您已在編輯器中開啟的程式碼檔案的命令,可以在內嵌程式碼助理和聊天視窗中運作,而更為一般編碼問題的命令只能在聊天窗格中運作。

命令 使用方式 聊天視窗 內嵌聊天
/doc 為指定或選取的程式碼新增註釋。
例如:
- /doc DeleteBasketAsync method in BasketService.cs
- 選取想要程式碼並輸入 /doc
Yes Yes
/explain 取得程式碼說明。

例如:
- /explain the AddItemToBasket method in BasketService.cs
- 選取想要程式碼並輸入 /explain
Yes Yes
/fix 建議修正所選程式碼中的問題。
例如:
- /fix the SetQuantities method in BasketService.cs
- 選取想要程式碼並輸入 /fix
Yes Yes
/generate 產生程式碼以回答指定的問題。
範例: /generate code to add two numbers in Calculator.cs
Yes Yes
/help 取得關於使用 Copilot 聊天的説明。
範例: /help
Yes Yes
/optimize 分析並改善所選程式碼的執行時間。
範例:
- /optimize the AddItemToBasket method in BasketService.cs
- 選取想要程式碼並輸入 /optimize
Yes Yes
/tests 為選取的程式碼建立單元測試。
例如:選取想要程式碼並輸入 /tests using XUnit Framework
Yes Yes

螢幕擷取畫面:內嵌聊天檢視和聊天視窗中的斜線命令。

參考:將 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 技能的螢幕擷取畫面。

使用範例

以下是使用內容控制項參考的一些範例:

範例 Copilot 用來形成問題的內容
#MyFile.cs:66-72 的用途是什麼? 檔案的精確區段
#BasketService.cs 中的測試在哪裡? BasketService.cs
/解釋 #BasketService.cs 中的 #AddItemToBasket BasketService.cs 中的 AddItemToBasket 方法
此 @workspace 中是否有 delete basket 方法 在 IDE 中開啟目前的解決方案
我有一個名為 #TestCalculator 的測試方法。 如何確保它正確執行? TestCalculator 方法
是否可以解釋 #BasketService 和 #OrderService 類別之間的差異? BasketService 類別和 OrderService 類別
在我的 @workspace 中,#AddItemToBasket 在哪裡? 在 IDE 中開啟目前的解決方案

檢閱 Copilot 聊天使用的來源

Copilot Chat 會在每個結果之後顯示所使用的內容,讓您可以分辨回答問題時所考量的內容。 當您向 Copilot 聊天提問並在聊天視窗中獲得回覆時,回應下方會顯示一個參考下拉式清單。 [參考] 下拉式清單中的項目顯示 Copilot 聊天產生該回應時所引用的上下文。 這項資訊可協助您修改問題,以取得更好且更相關的答案。

螢幕擷取畫面:Copilot Chat 中使用的參考下拉式清單。

組織:將與 Copilot 的聊天隔離成執行緒

如果您在撰寫程式碼時廣泛地使用 Copilot Chat 詢問問題,可以透過讓交談保持主題的方式進行組織。 適用於 Visual Studio 的 Copilot Chat 現在提供簡單的方法來啟動新的交談 (執行緒),讓他們專注於手邊的工作,並讓內容保持清晰,使答案以相關的歷程記錄為基礎。

新增聊天對話

您可以選取聊天視窗中的 [建立新執行緒] 來啟動新的執行緒。

螢幕擷取畫面:Copilot Chat 中的建立新執行緒圖示。

切換聊天對話

您可以在多個進行中的執行緒之間選取,為您的問題提供正確的歷程記錄內容。

螢幕擷取畫面:在 Copilot Chat 中切換進行中的執行緒。

將內嵌聊天提升到聊天視窗

Visual Studio 2022 版本 17.11 中,您現在可以透過將內嵌聊天提升到聊天視窗來保留其歷史記錄。 選取 [在聊天視窗中繼續...],以維護對話的記錄和內容,然後在聊天視窗中繼續。

將內嵌聊天中正在進行的對話提升到聊天視窗的螢幕擷取畫面。

最佳作法

Copilot Chat 會使用聊天記錄來取得您要求的內容。 若要只提供 Copilot 相關的記錄:

  • 使用對話來為新工作啟動新對話。
  • 刪除不再相關或未達到預期結果的要求。

保持聊天對話開啟,並繼續迭代和提示 Copilot,以改進建議的解決方案。 Copilot 擁有生成的程式碼上下文,以及您目前的對話記錄。 隨著您繼續提出額外問題,Copilot 會根據您的要求進一步完善回應。 請參閱 提示工程 GitHub Copilot ,以獲取改善您 Copilot 結果的有效提示策略。

下一步