Trae 是一款很優秀的 AI 開發工具,但目前支持的平臺還較少,比如不支持 Win7,不支持 Linux,為了在這些平臺上進行開發,我需要尋找一個替代品。經過網上搜索,選擇了 VSCode + Continue 擴展,但在使用過程中踩了不少坑,這里記錄下來供借鑒參考。
什么是 Continue 擴展?
Continue 是一款強大的 VS Code 擴展,旨在增強開發者的編碼體驗。它利用人工智能技術,提供多種功能來提高代碼質量和開發效率。主要功能包括但不限于:
- 代碼生成與補全:根據上下文自動生成代碼片段或完整的代碼塊。
- 注釋生成:為現有代碼生成詳細且準確的注釋,支持多種編程語言。
- 測試用例生成:根據代碼邏輯自動生成單元測試用例。
- 代碼優化建議:提供代碼優化建議,幫助開發者編寫更高效的代碼。
- 文檔生成:生成項目文檔、API 文檔等。
- 自定義命令:允許用戶創建和配置自定義命令,以滿足特定需求。
使用背景
- 在公司內網進行開發,不能直接接入互聯網,屬于離線環境;
- 公司內網部署了 DeepSeek,提供了接口,可以供擴展調用。
遇到的問題
踩坑1:
老版 Continue 擴展使用 config.json 作為用戶配置文件,但新版 Continue 擴展已經改用 config.yaml 作為用戶配置文件,前者是 json 格式,后者是 yaml 格式(一種數據序列化語言),但從網上能找到的各種教程,基本都是用 json 格式,導致實際操作中需要轉換格式,非常不方便,還容易遇到各種問題。
解決方法:
這是我瞎試出來的方法,無論是?config.json 還是?config.yaml,都存放在 user/.continue (Windows 和 Linxu 一樣,都是在用戶名目錄下的 .continue 子目錄),打開這個目錄,如果已經有了?config.yaml,直接刪除,然后創建一個?config.json 文件(可以是空文件)。再打開 VSCode,你會發現,Continue 擴展也能正確識別并使用 config.json 文件。后面就可以愉快的使用網上教程里的各種 Json 格式范例了。
踩坑2:
我按照網上的提示,添加了模型,也按照公司的接口數據進行了修改,但測試時總是遇到連接上的問題,當 provider 設置為 deepseek 時,就提示連接 deepseek 網站超時失敗,設置為 openai 時,就提示連接 openai 網站超時失敗,設置為 ollama時,就提示找不到?Ollama 服務。這個問題浪費了我很長時間,我一度以為 Continue 擴展是不是不能完全脫離互聯網使用,或者必須安裝 Ollama 用本地大模型才行。
解決方法:
首先你要理解 Continue 擴展對模型的處理邏輯,對于一個模型,Continue 擴展會檢查是否有自定義地址,如果沒有(或它不理解你設置的內容),它就會連接 Provider 的官方網址。而這個自定義網址,是用 apiBase 屬性來設置的。所以,當你發現 Continue 擴展總是連接 Provider 官網,就要檢查 apiBase 是否正確。(這里還有一個小坑,config.json 如果設置錯參數,有的會提示,有的不會提示,比如這里我寫成 api_Base,它就不提示出錯)
另外,apiBase 屬性還要設置對,設置錯了也不行。
如對于 DeepSeek, "apiBase": "http://XX.XX.XX.XX:YY/v1/chat/completions", 這樣的寫法就不對,要寫成? "apiBase": "http://XX.XX.XX.XX:YY/v1/"。 (這里僅代表我遇到的情形,不同的環境也可能會有不同要求)
此外,Continue 擴展官網還說要在 User settings 中關閉掉“Allow Anonymous Telemetry”,但個人感覺沒什么影響,如果前面操作后仍有問題,可以試一試。
踩坑3:
Continue 擴展是默認是英文的,右鍵菜單有5個功能,實際執行都是英文,如生成注釋為英文。因此想要增加中文的命令。這里折騰了很久,就是死活不生效。
解決方法:
首先,把 yaml 格式的配置文件改成 json 格式,在這種情況下,使用了網上的經驗做法,目前確定能生效的屬性有:
customCommands": [
{
????????"name": "修復BUG",
????????"prompt": "請仔細分析以下代碼,找出可能存在的運行錯誤或邏輯問題:\n\n{{{input }}}請按照以下步驟進行:1. 識別代碼中的錯誤,包括語法錯誤、運行時錯誤和邏輯錯誤。2. 修改代碼以修復發現的問題,確保代碼能夠正確運行。3. 使用 markdown 格式提供修改后的完整代碼。4. 詳細說明原始代碼和修改后代碼的區別,解釋每處修改的原因。5. 簡要總結修復的主要問題。請使用簡體中文回答,保持回答的簡潔性和條理性,避免重復或無關的內容。",
????????"description": "修復代碼錯誤"
}]
添加后,在 Chat 對話欄輸入 / ,就會出現 修改BUG 的選項,如果沒有就說明沒生效。
此外還有代碼補全應該也可以,碰到過補全內容的提示:
"tabAutocompleteModel": {
????????"title": "DeepSeek",
????????"model": "deepseekr1",
????????"apiKey": "",
????????"apiBase": "http://XX.XX.XX.XX:YY/v1",
????????"completionOptions": {"stop": ["[PREFIX]", "[SUFFIX]"] },
????????"provider": "openai"
},
還沒解決的問題
現在希望能把右鍵菜單的5個常用功能改成中文版,但試了很多方法尚未成功,如有好的方法,煩請留言,感謝~