在使用生成式 AI 來提供程式碼建議的時候會希望產出的程式碼建議會符合自己或是團隊的 Code Style,或是可以在協助做 Code Review 的時候可以幫忙檢查出不符合 Code Style 的程式碼,最近 GitHib Copilot 更新了一個實驗性的功能,可以讓我們方便設定自定義的提示詞,讓 AI 在回覆的時候更符合我們的需求,後面就來說明該如何設定。

說明
目前要使用這個功能的話需要將 Visual Studio Code 中的 GitHub Copilot Chat 套件更新到 0.22 以上,Visual Studio 2022 的話則是更新到 17.12 以上,確定更新到正確的版本之後就先來打開相關的設定,後面就針對兩個不同 IDE 說明設定的位置。
Visual Studio 2022
在 Visual Studio 的設定裡面找到 GitHub,就可以看到啟用的選項,把選項打勾來啟用就可以了。

Visual Studio Code
打開 VS Code 的設定,然後搜尋 GitHub Copilot Chat Instruction 就可以看到相關的設定,我們可以簡單打開選項 Use Instruction File,之後只要專案資料夾底下有 .github
資料夾,裡面放上 copilot-instructions.md
名稱的檔案,每次 GitHub Copilot 回應的時候就會固定送出檔案定義的提示詞來呈現結果,也可以針對需求設定選項在 settings.json 裡面,就點選底下的選項在 settings.json 內編輯
就可以了。

測試結果
程式註解一律使用繁體中文,變數名稱、函數名稱、類別名稱一律使用英文
固定在產生的程式碼最上方加上一行註解:由 GitHub Copilot 產生
變數一律大寫,並使用底線分隔
我在檔案裡面定義了三個提示詞,分別比較有設定跟沒設定的情形下的效果。
未啟用的狀態下回覆的結果。

啟用之後回覆的結果,可以看到預設幫我們把設定的 copilot-instructions.md 的檔案加入參考,而回覆的結果也和我們設定的提示詞一樣。

如果透過 GitHub Copilot 來做 Code Review 的時候也會提示出來需要修改的地方。

結論
原本要讓 GitHub Copilot 可以符合我們的 Code Style 會需要透過購買企業版並訓練自己的模型,或是每次都要自己再去參考類似的檔案來客製化提示詞,現在只需要把功能打開,並在專案裡面放上指定檔名的檔案就會自動幫我們送出當作參考,透過這樣的設定,可以簡單的讓我們生成的結果更符合我們要的程式碼,也可以把這個檔案跟著進去版控,這樣整個團隊都可以自動套用到,就不怕有人會忘記參考,可以讓團隊的程式碼更一致,在做 Code Review 的時候也可以讓 GitHub Copilot 透過設定好的提示詞來給相對應的修改建議。