article_image

前段时间体验了 Cursor,其中的 Cursor Tab 和 @Codebase 功能确实很强,我现在已经开始付费使用了。

不过也有开发者朋友跟我聊到,Cursor 是很厉害,但是 20 美元/月的价格实在太贵了,如果便宜一点就好了。

所以我给他推荐了一些国内的 AI 代码补全插件,上面这篇文章里也提过一些——

现有的 AI 编程助手已经有多家巨头在竞争了。光我试用过的就有许多:海外产品有 Github Copilot、Amazon CodeWhisperer,国内产品有字节的豆包 MarsCode、阿里的通义灵码、讯飞的 iFlyCode 等等。

目前国内的这几家都是免费或者免费试用中,应该可以满足大多数的需求。最后他看了一圈,来了一句:“难道没有开源的吗?”

于是我去了解了一下,还真有这样的开源插件:Continue。

🏠 Continue 官网

Continue 是一款 VSCode 和 JetBrains 插件,它本身不提供 AI 模型,但它提供了多种接入 AI 模型的方法,来实现多种场景下的功能。


自动补全
自动补全

相比直接用商业插件,用开源插件配合商业模型,更有“用多少花多少”的安心感。更不用说 Continue 还支持连接到本地的模型,如果你的 CPU、显卡性能足够,完全可以在本地跑一个 3B 级别小模型来实现 AI 补全。

安装与配置

首先,安装 Continue 插件非常简单,只需要在 VS Code 的扩展市场中找到并安装即可。

🔗 Continue - VSCode Marketplace

插件的配置就要稍微研究一下了。

由于代码助手的场景很多样,不同的模型的侧重点也不同,不能用一套 OpenAI API 打天下。

比如最常见的 Tab 补全,表现最好的是 3B 大小的模型,因为速度最快。而 Chat 模型则可以用一些 GPT 4o、Claude 3.5 Sonnet 这样的常用对话模型。


官网对此的说明
官网对此的说明

Continue 目前根据用途,将模型分为下面这 4 种(下面链接内有更详细的解释):

在线模型配置

目前在线模型中,我比较推荐的还是 DeepSeek,DeepSeek 支持 Chat 和 AutoComplete Model,并且价格也比较低廉,很适合个人使用。

你可以先在 DeepSeek 官网 注册账号并申请 API Key。

推荐配置

拿到 API Key 之后,你就可以根据 Continue 提供的 DeepSeek 配置文件 ,在 Continue 中进行如下配置下面这些配置。


配置入口
配置入口

首先在左侧打开 Continue ,点击下方的配置按钮,会出现 json 格式的配置文件。

Chat model 配置,可以配置多项。

{
  "models": [
    {
      "title": "DeepSeek Chat",
      "provider": "deepseek",
      "model": "deepseek-chat",
      "apiKey": "[API_KEY]"
    }
  ]
}

Autocomplete model ,只能配置 1 个。

{
  "tabAutocompleteModel": {
    "title": "DeepSeek Coder",
    "provider": "deepseek",
    "model": "deepseek-coder",
    "apiKey": "[API_KEY]"
  }
}

注意 JSON 格式非常严格,你需要确保你的写法是准确的。

可选配置

Embeddings model 可以不用配置,VSCode 中 Continue 提供了一个默认配置(使用了 Transformers.js),在默认情况下会在本地计算机运行,无需额外配置。

Reranking model 也是可选配置。主要是对 @Codebase 功能有帮助,能够在向量搜索中找到最相关的代码片段。Continue 推荐使用 Voyage AI 的 rerank-1 (需要申请 Token)。为了简化配置步骤,你可以暂时用 Continue 提供的 Voyage AI 的免费试用配置。后面再按照 详细的配置文档 进行配置。

{
  "reranker": {
    "name": "free-trial"
  }
}

注意,上面这些只是最基础的配置,如果你有一些特别的需求,比如你希望它始终提供多行的代码补全,就需要附上额外的参数 multilineCompletions 等。再比如 @Codebase 的时候你想让它检索更大范围需要配置 nRetrieve 参数。这部分配置我推荐你自行研究一下它的文档——

🔗 Continue 自动补全文档

🔗 Continue @Codebase 文档

在线模型体验如何?

在线模型的使用中,Continue 确实能满足我对本地代码补全的要求。

当你使用 Tab,生成效果和速度跟文章开头提到的那些商业插件不相上下。

当你使用 Chat 面板时,也能给出格式准确的回答。


Chat Model 功能
Chat Model 功能

但是在 AutoComplate 功能方面还是差了一些,相比 Cursor Tab 那种只需要敲 Tab Tab 的模式,爽快感差了一截,但已经能够满足日常使用的需求。

Continue 的官网上还展示了一个 Actions 功能,包括了 @Codebase 和斜杠命令如 /edit/test 等,从动图上看效果还是很棒的。


Actions 功能演示
Actions 功能演示

我也体验了 @Codebase 的功能,它也会对当前代码库中的内容进行检索,检索的范围似乎比 Cursor 小一些,导致 @Codebase 的结果和体验也比 Cursor 要差一些。

但这不太严谨,只是个人体感,毕竟代码内容千差万别,Prompt 也不同,Cursor 的模型更强(默认 Claude 3.5 Sonnet),加上我没有在 Continue 中完整配置 Reranking model,多个原因共同作用下,才导致的效果不佳。

瑕不掩瑜,我认为 Continue 还是很大程度上满足了日常开发的需求。

本地模型配置

接下来再看看 Continue 的舒适区,结合本地模型配置,用自己电脑的性能去跑模型。

本地模型我只推荐自定义 Autocomplete model,因为体量更好,速度更快。过大体量的 Chat model 在本地跑速度还是太慢,生成一条回复能急死人,回复质量也远不如在线模型。

我用的设备是 Macbook Pro M2 ,模型则是用 LM Studio 来加载和启动。macOS 用户可以有其他选择,比如之前推荐过的 Jan 。

根据 Continue 的推荐,它推荐我们使用开源模型 StarCoder2-3B 作为自动补全模型,我还尝试了 DeepSeek Coder 的 1.3B 模型和 6.7B 模型。

我的个人感受和 Hugging Face 下载地址都附在下方。

StarCoder2-3B (适合 Tab 补全,速度快,效果好)

🔗 second-state/StarCoder2-3B-GGUF 模型下载

deepSeek-coder-1.3B (适合 Tab 补全,速度快,但输出效果一般,存在格式错误)

🔗 TheBloke/deepseek-coder-1.3b-instruct-GGUF 模型下载

deepSeek-coder-6.7B(响应过慢,不适合代码补全)

🔗 TheBloke/deepseek-coder-6.7B-instruct-GGUF 模型下载

所以我的最后还是乖乖用了 StarCoder2-3B。

上面的下载链接列表里,我推荐选择 xxx-Q5_K_M.gguf。这些文件名通常与大语言模型的量化方法有关,目的是减少模型推理的计算复杂度,同时保持较高的精度。过高可能会导致速度变慢。

当你把 StarCoder2-3B 模型放到 LM Studio 的模型目录中并启动后,LM Studio 会在 localhost:1234 上启动一个 AI 服务器后端(Jan 的端口是 1337)。

然后你需要回到 Continue 插件配置中,配置如下信息——

  "tabAutocompleteModel": {
    "title": "StarCoder-3b-lmstudio",
    "model": "StarCoder-3b",
    "apiBase": "http://localhost:1234/v1/",
    "completionOptions": {},
    "provider": "lmstudio"
  },

这里常见的错误是,你必须满足 JSON 格式要求。tabAutocompleteModel 后面是 {},意味着只能配置一个,所以记得把刚刚配置的 DeepSeek 删掉。

这样一来,就可以纯用本地电脑性能实现自动补全了,不用为商业 AI 服务花一分钱了。

本地模型体验如何?

我分别在 Macbook Pro M2 和 RTX 3070Ti 的配置下进行了尝试。

在使用 GPU 时,代码补全速度非常快,几乎和云端解决方案没有区别。

而在 CPU 环境下,虽然响应速度稍有下降,但依然能流畅运行。


Macbook Pro M2 录屏
Macbook Pro M2 录屏

可以看到,速度方面非常 OK,代码质量也基本满足要求。甚至从响应速度上说,比在线版本还要快不少。

这种本地处理的方式尤其适合对隐私有较高要求的开发者,因为所有的数据处理都在本地进行,不用担心代码被上传到云端。

不过,需要注意的是,Continue 对硬件配置还是有一定要求的。尤其是当你使用更复杂的模型时,低配置的机器可能会有些吃力并且发热严重。

因此,如果你希望获得更好的体验,还是建议使用配置较高的开发环境。

小结

总体来说,Continue 是一款非常值得推荐的 VS Code 插件,特别适合那些重视隐私、安全性,并希望利用本地 AI 模型提高开发效率的开发者。

虽然在性能上需要依赖较高的硬件配置,但它提供的灵活性和本地化的处理能力,完全可以弥补这一点。

如果你有兴趣尝试 AI 驱动的代码补全,并且希望数据完全掌控在自己手中,那么 Continue 无疑是一个非常好的选择。


author_avatar

#UNTAG Developer