1. 为什么要在 IDE 里折腾 Ollama + Continue 这套组合
如果你每天写代码时既想用 AI 补全,又不想把公司项目源码传到云端,那 Ollama + Continue 是目前门槛最低的一条路。Ollama 负责在你本机跑开源大模型,Continue 负责把模型接进 VS Code 和 IntelliJ IDEA,提供行内补全、侧边栏对话、内联修改这些能力。整套东西完全离线、完全免费,代码不出本机。
但实际用下来,纯本地方案有两个绕不开的坎:一是本地小模型在复杂重构、长上下文推理上确实吃力,二是团队里每个人机器配置不一样,有人跑 3B 流畅,有人想用 7B 就得换机器。所以更实用的做法是「本地为主、云端为辅」——日常补全走 Ollama 本地模型,遇到难题时通过 TaoToken 统一 Key 通道临时切到更强的云端模型,配置只改一个 provider 字段,不用来回折腾环境。
这篇就按这个思路走:先把 Ollama + Continue 的本地链路搭通,再演示怎么用 TaoToken 的 API 通道把多模型接入统一管理。全程给可复制的配置片段和验证命令,VS Code 和 IDEA 都覆盖。
适合谁看:对代码隐私敏感的后端/客户端开发者、网络环境不稳定想离线写代码的人、以及想用一套配置同时管本地模型和云端模型的团队。前置要求很简单:一台 16GB 内存起步的机器(8GB 也能跑 3B 模型,但会卡),装好 VS Code 或 IntelliJ IDEA,剩下的跟着做就行。
核心检索词先明确:Ollama 是本地大模型运行时,Continue 是 IDE 里的 AI 编程助手插件,两者配合就是一套离线 AI 编程助手方案。下面从环境准备开始。
2. Ollama 安装与模型拉取:本地离线 AI 编程助手的地基
Ollama 的安装没什么坑,去官网下对应系统的安装包,双击装完,任务栏出现羊驼图标就说明服务在后台跑起来了。Windows 用户注意:装完后ollama命令可能不在当前终端 PATH 里,重开一个终端再试。验证命令:
ollama --version能打印版本号就 OK。如果提示找不到命令,去「系统环境变量」里确认 Ollama 的安装路径加进了 PATH,或者直接用开始菜单里的 Ollama 快捷方式启动服务。
接下来拉模型。本地代码补全对模型的要求是「小、快、对代码语料友好」,3B 到 7B 的量化模型是甜点区。以 StarCoder2-3B 为例,一行命令拉取:
ollama run novaforgeai/starcoder2:3b-optimized这条命令会自动下载模型并进入交互对话模式,输入/bye退出。下载完成后模型名就是novaforgeai/starcoder2:3b-optimized,后面配置里要用到。
如果你的网络拉取慢,或者想把模型文件放到自定义目录,可以走手动导入。先去 ModelScope 镜像站下载带Q4_K_M的 GGUF 文件,然后在同目录建一个Modelfile:
FROM ./starcoder2-3b-instruct-q4_k_m.gguf终端进入该目录执行:
ollama create my-starcoder2:3b -f ./Modelfile之后用my-starcoder2:3b这个模型名即可。手动导入的好处是模型文件位置可控,方便备份和迁移。
拉完模型后,用一条命令确认本地服务能正常返回模型列表:
curl http://localhost:11434/api/tags返回的 JSON 里应该能看到你刚拉的模型名。这一步很关键,因为 Continue 连接 Ollama 走的就是http://localhost:11434这个本地端口,如果这里不通,后面插件一定连不上。
注意:Ollama 默认监听 11434 端口,如果这个端口被别的程序占用,服务会启动失败。用
netstat -ano | findstr 11434查一下占用情况。
模型选型上给个参考:StarCoder2-3B 量化后约 1.7GB,内存占用 2.2GB 左右,低配机器首选;CodeQwen-7B 约 4.1GB,适合更复杂的代码生成;DeepSeek-Coder-6.7B 约 3.8GB,中文注释和解释更友好。内存不够就选更小的 Q2_K 量化版本,代价是回答质量下降。
3. Continue 配置实战:VS Code 与 IDEA 的可复制 config 片段
Continue 在 VS Code 和 IDEA 里是同一个插件,但配置文件格式和路径不一样,这是最容易踩坑的地方。先讲 VS Code。
在扩展商店搜 Continue 安装,如果要 Tab 行内补全,还得额外装 Continue Autocomplete 插件——很多人配完发现没有补全,就是漏了这一步。装完后点左侧 Continue 图标,底部齿轮 → Open Config File,会打开config.json。把内容替换成下面这段(模型名换成你实际拉的):
{ "models": [ { "title": "StarCoder2 (Code)", "provider": "ollama", "model": "novaforgeai/starcoder2:3b-optimized", "apiBase": "http://localhost:11434" } ], "tabAutocompleteModel": { "title": "StarCoder2 (Autocomplete)", "provider": "ollama", "model": "novaforgeai/starcoder2:3b-optimized", "apiBase": "http://localhost:11434" }, "allowAnonymousTelemetry": false }关键点:tabAutocompleteModel必须单独配,它和models是两套东西,前者管行内补全,后者管侧边栏对话。allowAnonymousTelemetry设 false 关掉匿名遥测,纯离线场景建议关。改完完全关闭 VS Code 再打开,不是 reload window。
IDEA 这边,File → Settings → Plugins 搜 Continue 安装并重启。重启后右侧出现 Continue 图标,点开聊天窗口右上角设置图标进配置,或者直接编辑%USERPROFILE%\.continue\config.yaml。YAML 格式如下:
models: - title: "StarCoder2 (Code)" provider: ollama model: novaforgeai/starcoder2:3b-optimized apiBase: http://localhost:11434 tabAutocompleteModel: title: "StarCoder2 (Autocomplete)" provider: ollama model: novaforgeai/starcoder2:3b-optimized apiBase: http://localhost:11434保存后完全重启 IDEA。IDEA 里Ctrl+I可能和默认快捷键冲突,去 Keymap 搜 Continue 重新分配。
现在讲 TaoToken 统一接入。本地模型跑简单补全够用,但遇到复杂重构时,你可以在同一个config.json里加一个云端模型条目,通过 TaoToken 的 API 通道接入,配置只多一段:
{ "title": "TaoToken Claude", "provider": "openai", "model": "claude-sonnet-4-20250514", "apiKey": "你的TaoToken Key", "apiBase": "https://taotoken.net/api" }这样在 Continue 的模型下拉里就能一键切换本地和云端。TaoToken 在这里的作用是统一 Key 和 API 通道,你不用为每个云端模型单独管一套凭证。API 地址是https://taotoken.net/api,Key 在控制台创建。三件套记牢:Base URL 填https://taotoken.net/api,Key 填控制台生成的,Model ID 填你要用的模型名。
4. 验证请求是否生效:本地补全与对话的实测步骤
配置写完不代表生效,得实际验证。最直接的方法是断网测试:把电脑网络断开,在 IDE 里敲一段代码看有没有补全,或者打开 Continue 侧边栏问一个问题。如果断网状态下还能正常补全和回答,说明走的是本地 Ollama,完全离线。
第二种方法是看配置文件本身:provider是ollama,apiBase是http://localhost:11434,且没有apiKey字段——满足这三条就是纯本地。如果配了 TaoToken 的条目,那条会有apiKey和https://taotoken.net/api,用来区分。
第三种是命令行验证。先确认 Ollama 服务活着:
curl http://localhost:11434/api/tags返回模型列表就说明服务正常。再发一个实际的生成请求:
curl http://localhost:11434/api/generate -d "{\"model\":\"novaforgeai/starcoder2:3b-optimized\",\"prompt\":\"写一个Python快速排序\",\"stream\":false}"能返回response字段就说明模型推理链路通了。如果这一步卡住或报错,问题在 Ollama 侧,跟 Continue 无关。
第四种是看进程。打开任务管理器,确认ollama.exe在跑,提问时 CPU 和内存占用会明显上升,这是本地推理的特征。如果占用没变化,说明请求根本没到本地。
验证 TaoToken 通道时,可以在 Continue 里切到云端模型问一个本地模型答不好的问题,比如让它解释一段复杂正则。如果返回正常,说明apiBase和 Key 配对了。想单独测 API 通道,用 curl 打一下:
curl https://taotoken.net/api/v1/chat/completions -H "Authorization: Bearer 你的Key" -H "Content-Type: application/json" -d "{\"model\":\"claude-sonnet-4-20250514\",\"messages\":[{\"role\":\"user\",\"content\":\"hi\"}]}"返回带choices的 JSON 就说明通道正常。这一步能帮你区分是 Continue 配置问题还是 API 通道问题。
实测下来,本地 3B 模型补全延迟在几百毫秒级,对话首字延迟一两秒,日常写业务代码够用。复杂算法题它会答得比较浅,这时候切 TaoToken 的云端模型补上就行。
5. 常见报错排查:从 401 到 local proxy failed 逐个击破
配这套东西最常见的报错就那么几个,逐个说。
Failed to connect to Ollama:Continue 连不上本地服务。九成是 Ollama 没启动,看任务栏羊驼图标在不在,不在就从开始菜单启动。如果图标在还报错,检查apiBase是不是写成了http://127.0.0.1:11434之外的地址,或者端口被占用。用curl http://localhost:11434/api/tags确认服务可达。
401 Unauthorized:这个报错基本出现在 TaoToken 云端条目上,说明 Key 不对或没带。检查apiKey字段有没有填、有没有多余空格、Key 是不是在控制台重新生成过导致旧的失效。Base URL 必须是https://taotoken.net/api,写成别的路径会 404 或 401。
local proxy failed:Continue 在转发请求时代理层出错,常见于apiBase末尾多了斜杠,或者 provider 和 apiBase 不匹配。比如 provider 写ollama但 apiBase 指向了云端地址,就会报这个。核对 provider 和 apiBase 是否成对。
reading choices 报错:返回体里没有choices字段,通常是模型名写错,或者 API 返回了错误结构。用上面那条 curl 单独测一下,看返回的 JSON 结构对不对。如果 curl 正常但 Continue 报错,检查 Continue 里 model 字段和实际模型名是否一致。
OAuth 相关报错:如果你在 Continue 里配了需要 OAuth 的 provider,但没走完授权流程,会卡在这里。纯 Ollama + TaoToken 场景一般不会遇到,除非你混用了别的 provider。遇到就检查该 provider 的认证方式,TaoToken 走的是 Bearer Key,不需要 OAuth。
Tab 补全不工作:VS Code 里最常见的原因是没装 Continue Autocomplete 插件,或者tabAutocompleteModel没配。IDEA 里检查config.yaml的tabAutocompleteModel缩进是否正确,YAML 对缩进敏感,多一个空格就解析失败。
改配置不生效:Continue 读配置有缓存,改完必须完全关闭 IDE 再打开,reload window 不够。IDEA 尤其要注意,后台进程没退干净的话新配置不加载。
模型下载慢或失败:走 ModelScope 镜像手动下载 GGUF,再用ollama create导入,比直接拉取稳。或者换更小的量化版本。
排查顺序建议:先 curl 测 Ollama 本地服务,再 curl 测 TaoToken 通道,最后看 Continue 配置。这样能快速定位问题在哪一层,不用瞎改配置。
6. 多模型统一管理:用 TaoToken 把本地和云端串起来
本地模型和云端模型不是二选一,而是分工。日常补全、简单问答、隐私敏感的代码,走 Ollama 本地;复杂重构、跨文件理解、需要强推理的场景,切 TaoToken 云端模型。Continue 的模型下拉让这个切换变成一次点击。
TaoToken 在这里的价值是统一入口。你不需要为每个云端模型单独申请 Key、单独记 Base URL,一个 Key 走https://taotoken.net/api就能访问多个模型。配置里多写几个 model 条目,每个指向不同的 Model ID,就能在 Continue 里自由切换。
如果你长期用 AI 辅助编码,或者在做 Agent 类项目需要频繁调模型,可以了解下 Coding Plan,它适合把模型调用纳入日常开发流的场景。想先验证模型效果,直接去模型对话页面试几个 prompt 最直观。Key 的创建和管理在 API Keys 页面,接入细节看接入文档。
回到配置本身,一个同时管本地和云端的config.json大概长这样:
{ "models": [ { "title": "本地 StarCoder2", "provider": "ollama", "model": "novaforgeai/starcoder2:3b-optimized", "apiBase": "http://localhost:11434" }, { "title": "TaoToken Claude", "provider": "openai", "model": "claude-sonnet-4-20250514", "apiKey": "你的TaoToken Key", "apiBase": "https://taotoken.net/api" } ], "tabAutocompleteModel": { "title": "本地补全", "provider": "ollama", "model": "novaforgeai/starcoder2:3b-optimized", "apiBase": "http://localhost:11434" }, "allowAnonymousTelemetry": false }补全固定走本地,保证低延迟和隐私;对话按需切换。这套配置在 VS Code 和 IDEA 里逻辑一致,只是文件格式不同。
最后给个实用技巧:本地模型选型别一味追大,3B 量化在 16GB 内存机器上补全体验最顺,7B 适合对话但补全会有点拖。如果你的机器跑 7B 吃力,就本地 3B 补全 + 云端模型对话,这个组合性价比最高。配置改完记得完全重启 IDE,这是最多人忽略的一步。