我写了一个插件,让你在Visual Studio中使用本地大模型辅助编码

May 26, 2024

为什么要开发LLMCopilot插件?

GPT-4刚发布时,我就订阅了OpenAI的plus会员。经过一段时间的使用,确实GPT-4对于编码辅助能力非常强大,极大提升了解决开发过程中问题的效率。之后,各种辅助编码的大模型也如雨后春笋般出现,如vscode中的CodeGeeXFittenCode等插件。这些插件的体验都很好,但是这些都是云端插件,无可避免会将你的数据发送到厂商的服务器上。
之前我在vscode中开发爬虫时,由于需要将账户密码配置在代码中,这时我就不想使用这些云端的大模型了。因此,我希望能有一个本地的插件,可以让我完全控制自己的数据和隐私。这就是为什么有了上一篇文章:

在vscode中使用本地AI编程大模型
如果您想在您的计算机上运行 AI 代码助手而不泄露信息,甚至不需要互联网连接,现在有相当简单的方法可以做到。 我将在这里展示一个非常直接的解决方案。您需要 ollama、VSCode 和 privy 扩展。 Ollama Ollama 是一个很好的编排器,可以在本地机器上运行模型。 它支持多个编码器, 本文中我们使用 deepseek-coder. 您可以在 macOS、Linux 和 Windows 上安装它。它可以在 Docker 中运行。 在 Windows 上进行示例安装和验证安装。_ 安装 ollama。 使用 ollama 运行 deepseek-…

在VSCode中结合OllamaContinue插件,让我写代码用的很爽。这就让我想到,日常工作中使用的Visual Studio是不是也可以有类似的功能?
但是工作环境中使用,有几个限制:

  • 因为我们在专用网络开发,是没有互联网的,因此必须支持本地大模型。
  • 硬件要求不能太高,因为服务端开发,公司给配置的机器显卡都很一般,最好也只有RTX 3060,好在显存有12G。

可是在Visual Studio插件市场一通搜索后,我发现支持本地AI编程大模型的插件仅有聊聊数款,试用后发现体验都非常糟糕。因此我就萌生了自己开发一个插件的想法。
在上一篇文章中,我提到了Ollama,这是个开源的本地运行大模型的工具,最让我印象深刻的是,它提供了一键安装包,无需繁琐的环境依赖安装和配置。正好它也支持Restful Api,于是本地大模型的后端就决定是它了!

说来惭愧,虽然工作了十几年,但是对于C#我实在还是个小白,而VS插件只能用C#开发,所以这个过程还是非常痛苦的。在GPT-4v到GPT-4o的协助下,经过了数周时间的努力和挣扎,我终于完成了这个插件。目前已经在Visual Studio marketplace上发布了,欢迎大家试用和反馈!

LLMCopilot 插件

主要功能

  • 基于Ollama的本地大模型,所有数据都在本地,即使离线也可使用
  • 基于大模型的能力辅助编程
    • 解释代码
    • 自动补全
    • 代码查错
    • 添加注释
    • 和本地大模型聊天

说明

可以直接查看插件发布页说明,这里我就不再重复了。

foryoung365/vs-extension-llmcopilot
Gitee.com(码云) 是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。目前已有超过 1200万的开发者选择 Gitee。
LLMCopilot插件说明

安装

方法一:

你可以直接在Visual Studio的扩展中搜索并安装LLMCopilot插件。

方法二:

下载并手动安装vsix包。

LLMCopilot-适用于VS2019

LLMCopilot-适用于VS2022

一些额外的说明

代码自动补全开关,默认关闭

    按下Ctrl键接受所有预测
    按下数字1-9,接受前N行预测
    按下ESC键拒绝预测

为什么这么设计快捷键?

一个很自然的选择是Enter或者Tab键来接受预测。然而实际使用中,你就会发现,因为大模型预测的延迟,很多时候你只是正常的在编码,按下Enter键换行或者Tab键来插入缩进,但是莫名其妙的就接受了大模型的预测。插入了一大段你并不想要的代码。因此我选择了Ctrl这个正常编码过程中不那么频繁输入的按键作为接受预测的按键。
至于1-9接受前N行和Esc拒绝预测,应该是比较直观的行为了。

关于问题和反馈

如果有碰到问题或者有什么建议,可以在Github或者Gitee上提交issue给我,我会根据实际情况考虑进行修复或者优化。当然由于这只是工作之余的一点小玩意,可能响应并不会非常及时,也无法满足所有人的需求,但是合理的需求我会考虑。

github链接

gitee链接

最后,如果这个插件对你有用的话,记得在VS Marketplace中给个好评呦!