共用方式為


在 Visual Studio 中設定 GitHub Copilot Chat 的內容,以取得更好的答案

您可以要求 GitHub Copilot Chat 提供程式碼建議、說明程式代碼、產生單元測試,以及建議程式代碼修正。 除了您的提示之外,Copilot 還使用其他內容,例如您目前檔案中的程式碼和聊天記錄,以生成回應。

在本文中,您會瞭解如何藉由提供詳細資訊給 Copilot Chat 來取得更好的答案:

  • 使用斜線命令快速指定常見的工作,例如 /explain 以取得程式碼說明。
  • 使用 引導式聊天體驗自定義指示 來精簡內容。
  • 將影像附加 至提示,以提供其他內容,並進一步說明您的想法。
  • 使用參考將聊天範圍設定為特定檔案。
  • 檢閱 Copilot 用來產生答案的來源
  • 針對每個 Copilot 聊天使用不同的執行緒,讓您可以在每個聊天中維護不同的內容。

深入了解 Visual Studio 中的 AI 輔助開發,以及如何在 Visual Studio 中使用 Copilot Chat

先決條件

若要開始使用 Visual Studio 中的 GitHub Copilot Chat,您需要:

如果需要 GitHub Copilot Chat 的支援,您可以透過 https://support.github.com聯絡 GitHub。

提示指引

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

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

啟用自定義指示

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

若要設定自訂指示:

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

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

使用提示檔案

您現在可以在存放庫中建立可重複使用的提示檔案,以執行或共用常用提示。

若要建立提示檔案:

  1. 如往常在提示方塊中撰寫提示,使用 # 參考來包含解決方案的特定資訊,例如方法、類別和檔案。 您甚至可以參考其他提示檔案以取得共用指示。
  2. 將提示複製到 Markdown 檔案中,並將其以 .prompt.md 擴展名儲存在你的存放庫根目錄下的 .github/prompts 資料夾中。

若要使用提示檔案:

  1. 在聊天輸入欄中輸入#prompt:,以參考您.github/prompts資料夾中的任何提示檔案,或點擊聊天輸入中的➕圖示,作為上下文新增。
  2. 新增任何額外的詳細數據,或只要依目前輸入提示即可。

在 GitHub Copilot Chat 中使用提示檔案的螢幕快照。

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

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 聊天的説明。
範例:/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 Chat 中新增影像的範例案例螢幕快照。

參考:將 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 為內容。
  • 例如,直接詢問 Copilot,例如 檢查我的輸出記錄檔,並協助我修正此錯誤
  • 輸出視窗 中按下滑鼠右鍵,然後選取 用 Copilot 解釋 以附加它。

在 Copilot Chat 中顯示為內容的輸出視窗螢幕快照。

使用範例

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

範例 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 現在提供簡單的方法來啟動新的交談 (執行緒),讓他們專注於手邊的工作,並讓內容保持清晰,使答案以相關的歷程記錄為基礎。

新增聊天對話

在聊天視窗中選取 [建立新線程 ] 或 [Ctrl+N ],以啟動新的線程。

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

切換聊天對話

您可以在多個進行中的執行緒之間選取,為您的問題提供正確的歷程記錄內容。 您可以將 Ctrl+PgDown 用於上一個線程,或在聊天視窗中針對下一個線程使用 Ctrl+PgUpCtrl+Shift+T 會展開線程下拉式清單。

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

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

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

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

最佳做法

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

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

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

後續步驟