目前市面上有不少基于大模型的 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 run qwen2:7b通过以上 2 步,即完成了大模型的部署。特别注意的是:GLM系列大模型还不支持 Ollama 管理!因此如果你希望用 GLM 系列(如:GLM4-9B)大模型,那么请看方式二。
方式二 通过 Python 部署:通用方法,所有模型都支持,以下是老牛同学验证过的部署教程
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底层使用的大模型信息:
{"models":[{"title":"Qwen2:7B","provider":"ollama","model":"qwen2:7b"},{"title":"Llama3-8B","provider":"openai","model":"Local-Model","apiBase":"http://127.0.0.1:8000/v1","apiKey":"EMPTY","completionOptions":{"stop":["<|eot_id|>"]}}],"customCommands":[{"name":"test","prompt":"{{{input}}}\n\nWriteacomprehensivesetofunittestsfortheselectedcode.Itshouldsetup,runteststhatcheckforcorrectnessincludingimportantedgecases,andteardown.Ensurethatthetestsarecompleteandsophisticated.Givethetestsjustaschatoutput,don'teditanyfile.","description":"Writeunittestsforhighlightedcode"}],//"tabAutocompleteModel":{//"title":"Qwen2:7B",//"provider":"ollama",//"model":"qwen2:7b"//},"tabAutocompleteModel":{"title":"Llama3-8B","model":"Local-Model","apiBase":"http://127.0.0.1:8000/v1","provider":"openai","apiKey":"EMPTY"},"allowAnonymousTelemetry":true,"embeddingsProvider":{"provider":"transformers.js"}}Continue插件的配置信息主要分为 3 块:
首先,启动大模型(如:Qwen2-7B);其次,点击 IDE 左下角图标,以启用Continue插件;然后,选择一个对话大模型(默认选中第 1 个大模型):
使用方式一: 我们可以选择不同的大模型进行对话,相当于Continue插件提供了一个可视化对话客户端
使用方式二: 代码生成,也是本文的重点,下面老牛同学以快速排序算法为例,来如何利用Continue完成代码编写:
【场景一:AI 对话代码同步】
CTRL+Shift+L快捷键,或者点击代码框右上角的Apply to current file按钮,Python 自动同步到了编辑器中了:【场景二:代码自动补全】
# Python实现快速排序算法函数CTRL+Shift+L快捷键,然后在按下回车键,可以看到代码已经生成,可以按Tab键使用代码【场景三:增加单元测试代码】
CTRL+I快捷键增加代码测试代码,然后按下回车键,可以看到生成了测试用例代码【场景四:代码自动填充对话框】
Ctrl+L快捷键,代码自动填充到了左侧的对话框中请解释一下这段代码,然后按回车键提交大模型:【其他场景】
使用开源大模型作为团队的 Code Copilot 工具,可以提高团队的开发效率,同时也可以保护团队的代码隐私。虽然目前开源的 LLM 相比闭源商用的 LLM 还有一些差距,但是随着开源 LLM 的不断发展,相信两者的差距以后会越来越小。以上就是今天介绍的内容,希望对大家有所帮助。
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |