「GitHub Copilot」是 GitHub 在 2021 年發布的 AI 輔助程式開發系統,也算是相當資深的一套系統了。
而自從微軟在 2022 年推出 Visual Studio 2022 的延伸模組之後,後來也一直持續在開發新功能、後來更是直接整合進 Visual Studio 裡面。只是因為它一直以來都是要付費訂閱才能使用的,所以 Heresy 在免費體驗完之後就沒用過了。 XD
而現在,微軟終於推出他的免費版本,可以不用花錢、就有限制地使用他的 AI 輔助功能了!
GitHub 官方的公告是《Announcing 150M developers and a new free tier for GitHub Copilot in VS Code》,微軟也有一篇簡單的《GitHub Copilot Free is here in Visual Studio》說明可以在 Visual Studio 中使用。
如果想要使用的話,只要進入 GitHub 的設定頁面、在左側找到「Copilot」後(設定網址:https://github.com/settings/copilot),就可以啟用免費版的權限了~下面就是他的頁面:
這邊只要按下「Start using Copilot Free」就可以了。
之後他就會跳到 Copilot 的頁面(網址:https://github.com/copilot):
可以看到他也有列出有支援的 IDE 環境。除了 Visual Studio Code、Visual Studio 外,也支援 Xcode、JetBrains、Neovim、Azure Data Studio。
以 Heresy 來說基本上大概就只會用 Visual Studio 原生的整合版吧。
而在背後的模型的部分,目前預設是 Azure OpenAI 的 GPT 4o,免費版的帳戶可以切換成 Anthropic 的 Claude 3.5 Sonnet;但是其他像是 Google Gemini、GPT o1 就要付費升級才能用了。
再回到 GitHub 的 Copilot 設定介面,也可以看到這邊有列出免費版的限制:
每個月 2,000 次的程式碼完成、以及 50 次的聊天訊息。
不過這邊好像沒有顯示目前的使用量?(還是只是還沒更新?)
而這邊也有列出付費升級到 pro 版的好處:
- 沒有限制的訊息和互動
- 使用最新的模型
- 針對私有程式庫和延伸模組客製化對話
至於完整的功能差異的部分,則可以參考官方的《Take flight with GitHub Copilot》頁面,底下有完整的比較表。
感覺上,免費版的功能算是出乎意料地完整?在聊天和程式碼完成的部分,除了次數限制外都和付費的 Pro 版相同。
比較明確缺少的功能,似乎只有 AI-native experiences 下的:
- Summaries for pull requests, issues, and discussions
- Upgrade assistant for Java in VS Code
- Code review in GitHub
- Copilot Workspace in pull requests
- Technical Preview access to Copilot Workspace
這幾項?不過其他有支援的項目會不會有其他比較細緻限制就不知道了。畢竟,像免費版雖然也支援切換模型,但是實際上能切換的模型比較少,在這張表是看不出來的。
另外,就是不能在 GitHub Mobile 和 GitHub CLI and Windows Terminal 裡面使用了。
至於在 Visual Studio 2022 的部分呢?如果本來在 Visual Studio 登入的帳號就和 GitHub 有聯結的話,那在 GitHub 網站啟用 GitHub Copilot Free 後,右上角的「GitHub Copilot」按鈕左邊就會出現綠色的勾勾、代表可以使用了。
而實際上現在 Visual Studio 2022 整合的 Copilot 功能因為改了很多,所以和 Heresy 最早完的狀況也差很多了。
像是以現在的自動完成來說,他會在上面出現一個「按 Tab 接受或和按 Alt + / 修改」的介面:
像是這邊輸入下面的程式碼:
template<typename T> T square(const
那他就可以自動完成整個平方的函式了!
但是另一方面,很蠢的是,如果在完成之後再把游標移到函示名稱那邊,他會再建議建立一次內容:
感覺上,他的建議感覺也沒有很完整地考量到整個前後文。
另外,給他註解來寫程式的方法還是可以用的~比如說下面的程式碼:
#include <iostream> #include <vector> #include <algorithm> int main() { std::vector<double> v = { 1.0, 2.0, 3.0, 4.0, 5.0 }; //find mean of vector by std algorithm double sum = std::accumulate(v.begin(), v.end(), 0.0); // Generated by AI step 1 double mean = sum / v.size(); // Generated by AI step 2 }
在註解寫完(寫的過程其實也有自動完成)後,他就會建議使用 std::accumulate()
來計算了總和;然後在接受了之後,下一個建議就是求平均了。
不過這邊由於 std::accumulate()
是 <numeric>
的內容,這邊並沒有去 include 這個 header、所以其實會編譯不過。
而現在在錯誤清單的前面,會顯示一個圖示、可以要求 Copilot 說明和修正。
按下去後,他會開啟 GitHub Copilot 的聊天室窗,說明錯誤的原因、還有修改後的程式碼:
以這點來說,感覺可能會滿實用的?只是以個人過去使用各家的 LLM 的經驗來說,比較進階的問題他大概還是解決不了吧?
另外,如果建立中斷點來檢查執行到一半的數值的時候,數值的右邊也會有 GitHub Copilot 的按鈕,點下去後可以要求 Copilot 說明這個值的來源。
但是以上面這個例子來說…Copilot 你回答的完全錯誤啊! XD
他的值和預期的不一樣、只是單純還沒有執行到那啊!結果你完全扯到沒有用到的程式去了?
總之,大概就是這樣了。其他 Visual Studio 整合的 Copilot 功能其實還滿多的,詳細可能就要去參考官方的文件(連結)了。
而以目前簡單玩了一下來看,他回答的結果基本上倒是沒有太讓人驚豔;反正大概就還是維持在「基本、常見的問題可以很好地回答」的階段,遇到進階、複雜的狀況,基本上就不用太期待了。
個人會覺得它和其他的 LLM 沒差很多,好處就是有和 Visual Studio 做整合,可以更方便地針對自己的程式碼來操作。
但是在使用上,可能要考慮:
-
他基本上還是雲端服務,所以勢必會把程式碼傳到 GitHub Copilot 後面的伺服器去。
自己的程式碼是否可以接受這種「上傳」的操作會是一個問題,尤其是公司開發的程式,很多其實應該是不允許的。 - 整合在 Visual Studio 裡面的 Copilot 自動完成地相當積極,常常會給一些簡短的自動完成、減少開發者打字的量,而且很多時候給的建議都還滿好的,變成可以打己的字後按 tab 就完成一小段。
但是免費的自動完成上限只有 2,000,如果使用的比較積極的話,應該會很快用完吧?到時候會不會被養壞了,結果只能付費訂閱呢?這可能也是要評估的。
以 Heresy 自己來說,還是希望哪天微軟可以開放讓他連到自己架設的 LLM 伺服器啦…