快轉到主要內容

AI寫程式之VS Code + Continue + Ollama設定教學,透過本機語言模型生成程式碼

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Linux好用軟體
標籤   Visual Studio Code Ollama
目錄

這是個語言模型都比你的IDE還要吃系統資源的時代~

「Continue.dev」是一款開源的AI程式助手,作為VS Code的延伸模組提供。它可以透過語言模型,協助寫程式。它算是Github Coplitot的一種替代品吧!使用完全免費,資料不會外流,並且使用者能夠自由指定要使用哪一家的語言模型服務。

Continue的主要功能有:

  • 打字的時候停頓一下,AI便會自動推斷後半你要寫的程式碼。像是建議函數的寫法,或者幫你更快寫完技術文件。
  • 讀取專案內的程式碼、說明文件、錯誤訊息、git diff結果,分析並給出建議
  • 協助除錯,一行一行自動修正錯誤的程式碼
  • 解釋程式碼用途
  • 生成文件註解
  • 使用VSCode的終端機,執行指令、建立檔案、搜尋網路
  • 自由切換各家語言模型,體驗不同的程式碼生成效果。完全離線執行,資料不會外流。

說到背後負責生成程式碼的語言模型,Continue支援ChatGPT、Claude這類線上服務,也可以連接到本機自架的語言模型服務,譬如Ollama。

這篇文章,Ivon將討論在Linux電腦的VSCode,搭配Continue延伸模組,連線到自架的Ollama,用於在VSCode的專案生成程式碼。

1. 硬體需求
#

VS Code本身沒有平台限制,Linux、Windows、macOS系統都可以用。Ollama同樣沒有系統限制。

下面內容,Ivon皆是使用Ubuntu系統操作。

本機的的語言模型要看資料量多寡,建議是使用7B以上的版本,越大越好,免得程式亂寫。為此,生成程式碼需要準備至少8GB以上的RAM,還有4GB以上VRAM的GPU給語言模型運算。

不要忘了,得把你執行VSCode和測試程式的開銷也算進去。語言模型運算的時候可能會搶佔你編譯程式的資源。

如果一台電腦負荷不了這麼高規格的運算,請考慮把Ollama的服務架在遠端伺服器,並透過VPN之類的方案,將本機的VSCode與遠端的Ollama連線。

2. 架設Ollama語言模型服務
#

  1. 參見如何安裝Ollama,Linux系統我直接用Docker部署,省事。

  2. 接著要用ollama pull指令下載模型。Ollama Library可以看到各種模型,建議使用*-Coder微調過的變種,它才能寫好程式。

  3. Continue會用到的是「聊天用」、「自動完成」、「嵌入」的模型。

聊天用(Chat)模型,負責總結程式碼還有回答複雜問題的,就挑一款Coder的7B以上語言模型,像我用Qwen 2.5 7B,這個模型家族支援中文問答。

ollama pull qwen2.5-coder

自動完成(Autocomplete)模型因為講求即時運算,所以建議使用較小的模型,讓它只要能依照前後文快速給出建議就好。

ollama pull qwen2.5-coder:1.5b

嵌入模型(Embedding)會用來掃描專案裡面的程式碼。我選擇的是支援中文的mxbai-embed-large

ollama pull mxbai-embed-large

3. 將Continue連接到Ollama服務
#

開啟VS Code,搜尋安裝Continue延伸模組。

點選VS Code左側的Continue設定,按Open config file

編輯設定檔,指定要使用的模型。models裡面可以定義多個模型備用。apiBase後面填寫的是Ollama伺服器位址,同一部電腦就是localhost,遠端的話請填寫遠端伺服器IP。

{
    "models": [
        {
            "title": "qwen2.5-coder:7b",
            "provider": "ollama",
            "model": "qwen2.5-coder:7b",
            "apiBase": "http://localhost:11434"
        },
        {
            "title": "deepseek-coder",
            "provider": "ollama",
            "model": "deepseek-coder",
            "apiBase": "http://localhost:11434"
        }
    ],
    "tabAutocompleteModel": {
        "title": "qwen2.5-coder:1.5b",
        "provider": "ollama",
        "model": "qwen2.5-coder:1.5b"
    },
    "embeddingsProvider": {
        "provider": "ollama",
        "model": "mxbai-embed-large"
    }
}

4. Continue操作方式
#

用VS Code開啟專案資料夾。

在程式碼編輯界面,輸入文字,停頓一下,Continue便會自動依照你的前後文跳出建議(灰色字體),按下Tab鍵確認套用。按下Ctrl + I則是會跳到Continue聊天欄面板,詢問要怎麼修改目前的程式碼。

讓AI幫忙除錯:選取一段程式碼,點選右鍵,選取Continue,選取Fix the code,或者寫註解。

之後AI會生成建議,並要使用者手動點選是否接受變更。

最後介紹聊天功能。這裡主要是跟AI討論文件、做詳細修改程式碼的用途。

點選左側Continue的面板,啟動聊天界面,輸入@,選取要引用哪個檔案給AI做參考。在程式碼編輯界面圈選程式碼,也能將其加入聊天欄。

AI生成的程式碼,點一下便能套用變更到目前檔案。

若是AI生成的內容含有指令,點一下便會自動切換到VS Code的終端機執行。

參考資料
#

相關文章

Flatpak版Linux Visual Studio Code安裝筆記
分類   Linux系統 Linux好用軟體
標籤   Flatpak Visual Studio Code
開源AI影片放大&補幀軟體:REAL Video Enhancer,支援Linux與Windows
分類   Linux系統 Linux好用軟體
標籤   Motion Interpolation Video Upscaling Vulkan CUDA
影片即時補幀:MPV + Linux版SVP安裝
分類   Linux系統 Linux好用軟體
標籤   Motion Interpolation VapourSynth MPV

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。