# 支持直连本地模型！不花一分钱的 AI 代码助手插件：Continue 详细教程

> 本文公开全文。

原文：https://utgd.net/article/20938

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

- 关联阅读：聊一聊 Cursor 比其他编程助手好在哪里

不过也有开发者朋友跟我聊到，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 种（下面链接内有更详细的解释）：

- Chat model 聊天模型

- Autocomplete model 自动完成模型

- Embeddings model 嵌入模型

- Reranking model 重排模型

## 在线模型配置

目前在线模型中，我比较推荐的还是 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 面板时，也能给出格式准确的回答。

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

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

我也体验了 @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 。

- 相关阅读 1：最佳本地优先客户端奖：LM Studio

- 相关阅读 2：随身带个知识库？让本地机器也可以运行 GPT 大语言模型：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 服务花一分钱了。

### 更新：使用 Ollama 实现 tab 补全

2025\-01\-06 更新

有读者在评论区提到用文中的配置，会在 LM Studio 中报错 inputConfig required to render jinja prompt\. 。

这个提示的大意是 LMStudio 在尝试处理一个 Jinja 模板（一个常用的模板引擎，用于动态生成内容）时，发现缺少一个名为 inputConfig 的变量。在这个模板中，可能有一个占位符，比如：\{\{ inputConfig \}\}，但系统没有接收到 inputConfig 的值。

我写本文时，这个配置是能跑起来的。但现在我也出现了相同的提示。这应该是新版本 Continue 插件和新版本 LM Studio 之间存在一些 Prompt Template 之间的兼容性问题。

所以补充一个 Continue 官方文档中的 Autocomplete 部分 提供的替代方案，改用 Ollama 进行配置。

配置步骤如下：

- 下载 Ollama 后启动，然后输入“ollama run qwen2\.5\-coder\:1\.5b\-base” 命令，跑一个通义千问的模型出来。

- 然后在 config\.json 中配置如下：

```
"tabAutocompleteModel": {
    "title": "Tab Autocomplete Model",
    "provider": "ollama",
    "model": "qwen2.5-coder:1.5b-base"
},
```

- 尝试在代码文件中按下 Tab 看看能否触发自动补全。

- 配置完成。

关于最初的问题，我已经提了一个 Issue 给 Continue，后期看 Continue 和 LM Studio 能不能修复这个 Bug 吧。

2025\-01\-07 更新

此问题确认是 LM Studio 0\.3\.6 版本的问题，目前最新版本 0\.3\.6 build 8 已修复此问题。

### 本地模型体验如何？

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

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

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

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

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

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

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

## 小结

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

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

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

---

[前往标准阅读页](https://utgd.net/article/20938?audience=web)
