在 VS Code 中使用聊天
在 Visual Studio Code 中使用聊天功能,以自然語言詢問您的程式碼庫,或在您的專案中進行編輯。聊天功能可以在不同的模式下運作,針對您的使用案例進行最佳化,從提出問題到進行多檔案編輯或啟動代理式程式碼撰寫工作流程。
當您需要以下功能時,您可能會想在 VS Code 中使用聊天功能
- 理解程式碼 - 「說明此驗證中介軟體如何運作」
- 偵錯問題 - 「為什麼我在這個迴圈中收到 Null 參考?」
- 取得程式碼建議 - 「示範如何在 Python 中實作二元搜尋樹」
- 最佳化效能 - 「協助我提升此資料庫查詢的效率」
- 學習最佳實務 - 「處理非同步函式中的錯誤,建議使用哪種方式?」
- 取得 VS Code 提示 - 「我該如何自訂鍵盤快速鍵?」
如果您還沒有 Copilot 訂閱,您可以註冊 Copilot 免費方案,每月可獲得有限的完成次數和聊天互動次數,即可免費使用 Copilot。
聊天模式
根據您的特定需求,您可以選擇不同的聊天模式
模式 | 描述 | 情境 |
---|---|---|
詢問 | 詢問有關您的程式碼庫或技術概念的問題。 | 理解一段程式碼如何運作、集思廣益軟體設計構想,或探索新技術。 |
編輯 | 在您的程式碼庫中的多個檔案中進行編輯。 | 直接在您的專案中套用程式碼編輯,以實作新功能、修正錯誤或重構程式碼。 |
代理人 | 啟動代理式程式碼撰寫工作流程。 | 以最少的指導,自主實作新功能或專案的高階需求,調用工具來執行特定的工作,並反覆運算以解決發生的問題。 |
使用「聊天」檢視中的 [**模式**] 下拉式清單,在不同的聊天模式之間切換。
在 VS Code 中存取聊天
您可以透過幾種方式在 VS Code 中存取聊天功能
-
**聊天檢視** (⌃⌘I (Windows、Linux Ctrl+Alt+I)):在專用檢視中進行持續、多回合的聊天對話。隨時在不同的聊天模式之間切換。依預設,「聊天」檢視位於 VS Code 中的次要側邊欄中。
-
**內嵌聊天** (⌘I (Windows、Linux Ctrl+I)):直接從編輯器 (編輯器內嵌聊天) 或整合式終端機 (終端機內嵌聊天) 啟動聊天對話,以取得就地建議。
-
**快速聊天** ():快速提出問題,然後回到您原本的工作。
使用對應的鍵盤快速鍵或透過 VS Code 標題列中的 Copilot 功能表,快速存取聊天功能。
提交聊天提示
您可以使用自然語言來提出聊天要求。您可以詢問有關您的程式碼庫的問題、取得程式碼建議或集思廣益。
開啟「聊天」檢視 (⌃⌘I (Windows、Linux Ctrl+Alt+I)),並在聊天輸入欄位中輸入您的提示。請注意,回應可能包含豐富的內容,例如 Markdown 文字、程式碼區塊、按鈕、檔案樹狀結構等等。
以下是一些您可以實驗的提示範例
- 詢問有關程式碼撰寫和技術概念的問題 (「什麼是連結串列?」、「前 10 大熱門 Web 架構」)
- 集思廣益如何最佳地解決程式碼撰寫問題 (「如何將驗證新增至我的專案?」)
- 說明程式碼區塊 ("@workspace /explain"、「這段程式碼的作用是什麼?」)
- 提出程式碼修正建議 ("@workspace /fix"、「這個方法會產生 FileNotFoundException」)
- 產生單元測試案例或程式碼文件 ("@workspace /tests"、"@workspace /doc")
- 詢問有關 VS Code 設定的問題 (@vscode 我要如何停用迷你地圖?)
如需更多提示範例,請參閱 GitHub 文件中的Copilot 聊天食譜。
在聊天輸入欄位中輸入 /help
,以取得有關 GitHub Copilot 以及如何與 Copilot 聊天互動的說明。
在編輯器中開啟聊天工作階段
您可以將聊天工作階段開啟為個別的編輯器索引標籤,甚至是個別的視窗。副作用是,這可讓您同時開啟多個聊天工作階段。
若要在編輯器或個別視窗中開啟聊天工作階段
-
選取「聊天」檢視右上角的
...
圖示。 -
選取 [**在編輯器中開啟聊天**] 或 [**在新視窗中開啟聊天**]。
變更語言模型
Copilot 提供不同的內建語言模型可供選擇。某些模型針對快速程式碼撰寫工作進行最佳化,而其他模型更適合用於較慢的規劃和推理工作。使用聊天輸入欄位中的模型選擇器,變更 Copilot 用於產生回應的模型。
您也可以新增來自其他模型提供者 (預覽) 的模型,並在聊天中使用它們。取得有關如何使用來自其他提供者的模型的更多詳細資訊。
可用的模型清單可能會根據您的 Copilot 訂閱而有所不同,並且可能會隨時間變更。如需有關可用的語言模型的更多資訊,請參閱 GitHub Copilot 文件。
在聊天中參考工具
您可以直接在提示中參考代理人模式工具,方法是輸入 #
,然後輸入工具名稱。您可以在所有聊天模式 (詢問、編輯和代理人模式) 中執行此操作。
新增聊天內容
Copilot 會嘗試根據您的自然語言聊天提示,判斷您的問題的意圖和範圍。為了協助取得更相關的回應,請在您的聊天提示中提供額外的內容。例如,新增檔案、測試結果、終端機輸出或其他可能與您的問題相關的內容。
取得有關將內容新增至您的聊天提示的更多詳細資訊。
讓 Copilot 自動尋找正確的檔案,方法是在您的提示中新增 #codebase
。請務必啟用 github.copilot.chat.codesearch.enabled (預覽) 設定,以獲得最佳結果。
Vision (預覽)
聊天功能支援 Vision 功能,這表示您可以將影像附加為聊天提示的內容,並詢問有關它的問題。例如,附加程式碼區塊的螢幕擷取畫面並要求說明,或附加 UI 的草圖並要求代理人模式實作它。
您可以將影像從 Web 瀏覽器拖放到「聊天」檢視上,以將其新增為內容。
聊天記錄
「聊天」檢視設計為多回合對話。Copilot 會使用對話記錄作為您目前提示的內容。這表示您可以提出後續問題或釐清您先前的問題,而無需重複內容。
您可以隨時使用「聊天」檢視中的 [**新增聊天**] (+
) 按鈕 (⌃L (Windows、Linux Ctrl+L)) 建立新的聊天工作階段。如果您想要移至不同的主題並避免先前的內容和記錄,這會很有用。
您可以使用「聊天」檢視中的 [**顯示聊天...**] 按鈕,或使用命令面板中的 [**聊天:顯示聊天...**] 命令,存取先前的聊天工作階段。選取項目以在「聊天」檢視中開啟該聊天工作階段。
您可以使用命令面板中的 [**聊天:匯出聊天...**] 命令,將聊天工作階段的所有提示和回應匯出到 JSON 檔案中。
還原先前的要求
在聊天工作階段中,您可以從該工作階段的對話記錄中移除特定的提示和對應的回應。將滑鼠游標停留在提示上方,然後選取 [**x**] 控制項。如果您注意到語言模型未提供相關回應或正朝著不想要的方向發展,則移除要求可能會很有用。
使用語音互動
透過 VS Code 中的語音控制功能,由 VS Code Speech 擴充功能提供,您可以使用語音啟動聊天對話
- 使用您的語音聽寫您的聊天提示
- 使用「Hey Code」語音命令,啟動與 Copilot 聊天的語音工作階段
- 使用「按住說話」模式加速聊天的語音輸入
深入瞭解如何在 VS Code 中使用語音互動。
隱私權與透明度
為了為私人存放庫啟用更多工作區搜尋功能,我們需要額外的權限。如果我們偵測到我們尚未擁有這些權限,我們會在啟動時要求這些權限。一旦授與,我們將安全地儲存工作階段以供未來使用。
深入瞭解 GitHub Copilot 信任中心中的安全性、隱私權和透明度。
常見問題
我該如何在不同的聊天模式之間選擇?
不同的聊天模式針對不同的使用案例進行最佳化
-
使用編輯器內嵌聊天,直接在作用中的編輯器中提出問題或進行編輯。這對於進行程式碼變更或詢問範圍限定在作用中檔案中的問題很有用。
-
使用詢問模式,詢問有關您的程式碼庫或技術概念的問題。回應可能包含程式碼建議,您可以手動且個別地將其套用至您的程式碼庫。變更不會自動套用至您的程式碼庫。
-
使用編輯模式,根據您的聊天提示,直接在您的程式碼庫中的多個檔案中套用編輯。您為您的提示提供相關的內容和檔案。
-
使用代理人模式,啟動代理式程式碼撰寫工作流程,Copilot 會自主判斷相關的內容和檔案,判斷需要執行哪些工作才能完成要求。然後,它會獨立地反覆運算以達成所需的結果,並在問題發生時修正問題。代理人模式可以調用工具來執行特定的工作,例如執行終端機命令、驗證測試案例或存取 API。
其他資源
您可以在 GitHub Copilot 和如何在 VS Code 中使用它的相關資訊,請參閱 GitHub Copilot 文件。
或者查看 YouTube 上的 VS Code Copilot 系列,您可以在其中找到更多入門內容以及針對搭配 Python、C#、Java、PowerShell、C++ 等語言使用 Copilot 的程式設計特定影片。
後續步驟
-
開始使用入門Copilot 聊天教學課程。
-
使用 Copilot 編輯在多個檔案中進行編輯。