在团队代码不能上传云端、网络连接不稳定,或希望降低日常调用成本的场景中,Ollama 与 Continue 是一套值得尝试的本地开发组合。Ollama 负责在本机运行模型,Continue 则把模型能力接入 VS Code 或 JetBrains,实现代码补全、对话式开发和项目上下文检索。本文以实际配置为主线,介绍如何完成接入并避开常见问题。🧩
一、整体方案与准备工作
这套方案包含三个核心组件:编辑器中的 Continue 扩展、本地模型服务 Ollama,以及分别承担代码补全和向量嵌入任务的模型。代码补全强调低延迟,适合选择体积较小的代码模型;项目索引需要嵌入模型,将代码片段转换为向量,以便按语义检索相关内容。
开始前请先安装 Ollama,并在 VS Code 或 JetBrains 中安装 Continue。安装完成后,可在终端执行以下命令确认 Ollama 已正常启动:
ollama --version
ollama serve
Ollama 默认通过本机 11434 端口提供服务。可以访问 来源链接,若页面返回“Ollama is running”,说明服务可用。不同系统的安装方式可参考 来源链接 下载页面。
二、选择并下载本地模型
自动补全的关键是响应速度,而不是盲目使用超大模型。Continue 文档推荐使用针对代码补全优化的模型,并指出推理型模型通常生成较慢,不适合高频补全场景。个人电脑可以先从 Qwen2.5-Coder 1.5B 开始,再根据显存、内存和延迟表现尝试更大版本。相关建议可查看 Continue 自动补全文档。
ollama pull qwen2.5-coder:1.5b
ollama pull nomic-embed-text
ollama list
其中,qwen2.5-coder:1.5b 用于编辑器内的代码补全,nomic-embed-text 用于生成项目代码的向量表示。建议使用 pull 下载模型,而不是使用 run 进入交互会话。模型标签必须与配置完全一致,否则 Continue 可能收到“model not found”错误。⚙️
三、配置 Continue 的代码补全
打开 Continue 面板并进入本地配置文件,使用当前推荐的 config.yaml 格式。下面是一份精简配置,既声明了自动补全模型,也声明了项目索引所需的嵌入模型:
name: Local Coding Assistant
version: 0.0.1
schema: v1
models:
- name: Qwen Local Autocomplete
provider: ollama
model: qwen2.5-coder:1.5b
apiBase: 来源链接
roles:
- autocomplete
- name: Local Code Embedder
provider: ollama
model: nomic-embed-text
apiBase: 来源链接
roles:
- embed
保存配置后重新加载编辑器,在 Continue 的模型设置中选择对应的自动补全模型。输入函数、条件判断或接口调用时,编辑器应出现灰色候选代码,按 Tab 接受,按 Esc 忽略。如果没有提示,需要确认 Continue 的 Tab Autocomplete 已启用,同时检查 VS Code 的 editor.inlineSuggest.enabled 是否为 true。
四、建立项目上下文索引
项目上下文索引并不是把整个仓库一次性塞进大模型,而是先切分代码,再由嵌入模型生成向量。提问时,Continue 根据语义相似度检索相关片段,将更有价值的内容加入上下文。Continue 对 embed 角色的说明可参考 嵌入模型文档。
配置嵌入模型后,使用 Continue 打开项目工作区并等待首次索引完成。大型仓库首次处理时间会更长,后续通常只需更新发生变化的文件。旧版教程常见的 @Codebase 和 @Folder 已被标记为弃用,新版本更推荐让 Agent 模式通过代码搜索、文件读取和项目规则理解仓库,迁移说明可查看 官方弃用说明。
为了提高上下文质量,可以在项目的 .continue/rules 目录中编写规则文件,说明技术栈、目录职责、命名规范和测试要求。例如明确 src/api 存放接口、src/components 存放组件,并要求新增功能同步补充测试。这样做不能代替代码索引,却能减少模型对项目结构的误判。📚
适合验证索引效果的问题
- 当前项目的用户认证流程从哪个入口开始?
- 新增一个接口时,需要修改哪些目录和注册文件?
- 项目中是否已有可复用的分页组件或请求封装?
- 请按照现有测试结构,为指定模块补充测试用例。
五、性能优化与故障排查
如果补全延迟明显,先观察 Ollama 运行时的 CPU、GPU 和内存占用。自动补全应优先使用较小模型,并避免同时运行多个大模型。还可以禁用 Markdown、日志文件、构建产物等不需要补全的文件类型,减少无意义请求。
- 出现 404:执行 ollama list,确认配置中的模型名称与本地标签完全相同。
- 无法连接:检查 ollama serve 是否运行,并确认 apiBase 指向 来源链接
- 没有行内建议:启用 Continue 的 Tab Autocomplete,并暂时关闭其他可能冲突的补全扩展。
- 索引结果不准确:确认 embed 模型已下载,排除依赖目录、生成文件和超大非代码文件,再等待索引更新。
- 内存不足:换用更小的代码模型,关闭闲置模型,避免聊天、补全和嵌入任务同时占用大量资源。
总结
Ollama 接入 Continue 的实践重点,可以概括为“补全模型求快、嵌入模型求稳、项目规则求准”。先用小型代码模型打通 Tab 补全,再配置本地嵌入模型建立语义索引,最后通过 .continue/rules 补充架构与规范信息,就能形成一套兼顾隐私、离线可用性和项目理解能力的本地编码工作流。对于普通开发项目,这种分工配置通常比让单个大模型承担所有角色更易维护,也更方便逐项排查性能问题。🚀