Copilot Chat 如何理解和使用內容

Visual Studio 中的 Copilot Chat 旨在具有上下文感知能力,透過深入了解專案的結構和內容來提供高度相關且量身打造的回應。 本文介紹了 Copilot Chat 如何建構和利用上下文來增強您的編碼工作流程的幕後花絮。

Copilot Chat 如何收集解決方案內容

Copilot Chat 使用多層方法在程式碼庫內建立內容,以確保其建議和答案相關且準確。

程式碼庫索引

如果您的存放庫裝載於 GitHub 或 Azure DevOps,Copilot 會建立程式碼基底的遠端索引,並計算擷取程式碼中模式和關聯性的內嵌。 深入瞭解 GitHub 上的遠端索引。

如果您的程式碼裝載在其他地方,Copilot 會建置本機索引。

根據您的提示,Copilot 可能會判斷需要更多專案內容才能準確回應。 在這種情況下,它會在遠端或本機索引上執行語意搜尋。

與匹配精確單詞的傳統搜索不同,語義搜索側重於含義。 使用進階向量內嵌,Copilot 會識別與您的請求具有最高語義相似度的檔案,並將其新增至其內容中。

這些檔案補充了系統提示、說明、隱含內容(例如聊天記錄和開啟的檔案)以及您提供的任何露骨內容,例如錯誤。

瞭解如何在聊天室中 新增參考資料做為內容 。

Copilot Chat 如何套用程式碼建議

Copilot Chat 經常在其回應中提供程式碼建議。 這些建議必須準確對應到您的程式碼庫,然後才能套用和測試。

基於模型的程式碼對應

Copilot Chat 使用推測解碼將建議準確插入現有文件,從而降低出錯風險。 在代理程式模式下,這可讓 Copilot 進行可靠的編輯,以支援獨立建置、偵錯和測試程式碼。

Copilot 記憶

Copilot 記憶體能讓 Copilot 瞭解專案中的特定編碼標準和最佳實踐,使其具備專案識別能力,並在會話之間保持一致性。

Copilot 記憶的運作方式

記憶功能會利用智能偵測技術,在您於聊天中進行提示時,理解您團隊的偏好。 當您提示時,Copilot 會識別您更正其行為、指示標準或要求它記住某些內容的實例。

當偵測到此類實例時,您會看到一個提示以確認儲存偏好設定。

Copilot 偵測到要新增至記憶體的偏好設定時的螢幕擷取畫面。

然後,Copilot 會將偏好設定分類為三個檔案之一:

  • .editorconfig針對編碼標準
  • CONTRIBUTING.md 以取得最佳實務、指導方針和架構標準。
  • README.md 用於高層次項目資訊

記憶體偵測到通知的截圖,顯示可選擇將偏好設定儲存為使用者或倉庫層級指令。

當偵測到偏好時,你可以選擇儲存在哪裡:

  • 使用者層級偏好設定:已儲存至 %USERPROFILE%/copilot-instructions.md. 這些偏好設定適用於你所有專案的 Copilot 會議。
  • 庫層級偏好設定:儲存至 /.github/copilot-instructions.md。 這些偏好會透過儲存庫與你的團隊分享。

這種方式讓你能根據自己的工作流程個人化 Copilot,同時為團隊建立共享的編碼標準。

當您繼續提示 Copilot 時,您可以教導它更有效地回應您的需求,並透過記錄開發最佳做法來增強其未來 Copilot 互動,以協助您的小組。