目前市面上有不少基于大模型的 Code Copilot 產品,部分產品對于個人開發者來說可免費使用,比如阿里的通義靈碼、百度的文心快碼等。這些免費的產品均通過 API 的方式提供服務,因此調用時均必須聯網、同時需要把代碼、提示詞等內容作為 API 的入參在網絡中傳輸和 API 服務器中進行處理,這里就涉及到一個比較重要的問題:隱私安全
針對小團隊私有保密項目、創新團隊孵化新產品,隱私安全問題就顯得格外重要。因此,團隊內部部署私有的Code Copilot方案就應運而出了:
今天老牛同學和大家一起來使用Qwen2-7構建個人或者團隊專屬的私有化 Code Copilot,除了代碼生成之外,還可以是支持 AI 問答、代碼解釋、語言轉換、生成單元測試用例等功能。不但可以提高我們的研發效率,還可以保護我們的代碼隱私。
前面老牛同學介紹了本地部署大模型和使用教程,包括Llama3-8B、Qwen2-7B、GLM4-9B、和Phi3等。大家可以看一下之前的部署教程,老牛同學今天使用Qwen2-7B作為我們 Copilot 底層大模型,對于本文Code Copilot的部署和使用,其他大模型都是一樣的,看大家的喜好,沒有特殊要求。
老牛同學這里簡單列一下部署教程:
環境安裝: 主要是Miniconda包管理安裝,參見教程,注意只需要安裝Miniconda和Python即可,其他非必須:大模型應用研發基礎環境配置(Miniconda、Python、Jupyter Lab、Ollama 等):https://mp.weixin.qq.com/s/P_ufvz4MWVSqv_VM-rJp9w
Code Copilot底層大模型的部署方式,老牛同學驗證主要以下 2 種,任選一種即可:
方式一 基于 Ollama 部署:
- 下載并安裝Ollama本地模型管理軟件(Windows/Mac/Linux 均支持):https://ollama.com/download
- 通過 Ollama 下載并啟動大模型:
通過以上 2 步,即完成了大模型的部署。特別注意的是:GLM系列大模型還不支持 Ollama 管理!因此如果你希望用 GLM 系列(如:GLM4-9B)大模型,那么請看方式二。
方式二 通過 Python 部署:通用方法,所有模型都支持,以下是老牛同學驗證過的部署教程
- Phi3:Phi-3 模型手機部署教程(微軟發布的可與 GPT-3.5 媲美的小模型)
- Qwen2-7B:Qwen2 阿里最強開源大模型(Qwen2-7B)本地部署、API 調用和 WebUI 對話機器人
- Llama3-8B:玩轉 AI,筆記本電腦安裝屬于自己的 Llama 3 8B 大模型和對話客戶端
- GLM4-9B:本地部署 GLM-4-9B 清華智譜開源大模型方法和對話效果體驗
Code Copilot Continue是目前最受歡迎的插件之一,它插件的形式使用,目前支持VS Code和JetBrains 全家桶這 2 個主流 IDE 的擴展,可以在對應的插件市場中直接搜索Continue下載安裝。Continue插件的一個最大優勢在于它可以指定連接本地或者局域網內的大模型,所以對于信息安全高的項目,我們完全可以在本地或者局域網內部署大模型,然后用Continue插件連接使用,在提高開發生產效率同時保護了研發代碼的隱私。目前Continue插件的社區活躍,GitHub 倉庫已達12K星,插件版本更新頻繁,越來越成熟。
因為老牛同學日常使用VS Code較多,因此下面的安裝和配置,基于VS Code完成,JetBrains(如:PyCharm 等)的方式類同。
安裝 Continue 插件: 插件管理器中,搜索Continue,點擊安裝,安裝成功之后重啟 IDE 即可。
Continue 插件狀態: 安裝成功并重啟之后,可以看到VS Code的左側多了一個Continue按鈕。同時,右下角也多了一個Continue狀態圖標:√ Continue則代表Continue在 IDE 中生效了,??Continue則代表Continue在 IDE 未啟用。
配置 Continue 插件: 點擊左下角啟用Continue插件,然后點擊左側的Continue按鈕,可以看到一個對話界面,點擊左下角齒輪形狀的配置圖標,則打開了一個 JSON 格式的配置文件,在這里可以配置Continue底層使用的大模型信息:
Continue插件的配置信息主要分為 3 塊:
- models 代表所有的模型列表:上面樣例配置文件,老牛同學分別配置了基于Ollama部署的Qwen2-7B大模型和基于OpenAI客戶端部署的Llama3-7B大模型(也就是涵蓋了上面大模型的 2 種不同部署方式的不同配置方式)
- customCommands 自定義給大模型的提示詞格式,input代表輸入內容(代碼或者文本等),可以按照實際需求進行調整
- tabAutocompleteModel 代碼編寫過程中,當按下代碼生成快捷鍵時,Continue生成代碼的大模型,從models列表里面指定一個即可,當然也可以設置一個其他的大模型(注意: 只能選擇一個模型,上面樣例配置注釋掉了一個,在實際使用時需要刪除掉,因為 JSON 不支持注釋?。?/li>
首先,啟動大模型(如:Qwen2-7B);其次,點擊 IDE 左下角圖標,以啟用Continue插件;然后,選擇一個對話大模型(默認選中第 1 個大模型):
使用方式一: 我們可以選擇不同的大模型進行對話,相當于Continue插件提供了一個可視化對話客戶端
使用方式二: 代碼生成,也是本文的重點,下面老牛同學以快速排序算法為例,來如何利用Continue完成代碼編寫:
【場景一:AI 對話代碼同步】
- 使用大模型對話能力,寫出快速排序算法代碼,Prompt 提示詞:請提供一下功能代碼:Python 實現快速排序算法函數,大模型很好的實現了算法邏輯,并且給了很多的說明和解釋
- 選中快速排序算法函數的代碼,然后按下快捷鍵,或者點擊代碼框右上角的Apply to current file按鈕,Python 自動同步到了編輯器中了:
【場景二:代碼自動補全】
- 在編輯器中,只需要輸入注釋內容(不要按回車鍵):
- 然后按下快捷鍵,然后在按下回車鍵,可以看到代碼已經生成,可以按使用代碼
【場景三:增加單元測試代碼】
- 在編輯器中,選中一段代碼函數,然后按下快捷鍵
- 然后,在彈出的Ctrl+I指令框中輸入:,然后按下回車鍵,可以看到生成了測試用例代碼
【場景四:代碼自動填充對話框】
- 在編輯器中,選中一段代碼,然后按下快捷鍵,代碼自動填充到了左側的對話框中
- 可以在對話框中繼續輸入指令,如:,然后按回車鍵提交大模型:
【其他場景】
- 增加注釋
- 代碼異常堆棧分析
- …… 其他請大家補充
使用開源大模型作為團隊的 Code Copilot 工具,可以提高團隊的開發效率,同時也可以保護團隊的代碼隱私。雖然目前開源的 LLM 相比閉源商用的 LLM 還有一些差距,但是隨著開源 LLM 的不斷發展,相信兩者的差距以后會越來越小。以上就是今天介紹的內容,希望對大家有所幫助。
關注本公眾號,我們共同學習交流進步 ????????????
Phi-3 開源大模型
Phi-3 模型手機部署教程(微軟發布的可與 GPT-3.5 媲美的小模型)
Qwen2-7B 開源大模型
Qwen2 阿里最強開源大模型(Qwen2-7B)本地部署、API 調用和 WebUI 對話機器人
Llama-3-8B 開源大模型
玩轉 AI,筆記本電腦安裝屬于自己的 Llama 3 8B 大模型和對話客戶端
一文徹底整明白,基于 Ollama 工具的 LLM 大語言模型 Web 可視化對話機器人部署指南
基于 Llama 3 搭建中文版(Llama3-Chinese-Chat)大模型對話聊天機器人
GLM-4-9B 開源大模型
本地部署 GLM-4-9B 清華智譜開源大模型方法和對話效果體驗
ChatTTS 文本轉語音模型
ChatTTS 開源文本轉語音模型本地部署、API 使用和搭建 WebUI 界面
Stable Diffusion 3 文生圖模型
Stable Diffusion 3 文生圖“開源英雄”大模型本地部署和使用教程,輕松實現 AI 繪圖自由
大模型應用實戰
大模型應用研發基礎環境配置(Miniconda、Python、Jupyter Lab、Ollama 等)
借助 AI 大模型,三分鐘原創一部兒童故事短視頻(附完整操作步驟)
高效編寫大模型 Prompt 提示詞,解鎖 AI 無限創意潛能
Python 小游戲
AI 已來,我與 AI 一起用 Python 編寫了一個消消樂小游戲
Python 游戲編程:一步步用 Python 打造經典貪吃蛇小游戲