ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

VSCode 接入本地大模型:用 Continue + Ollama 打通 TaoToken 配置链路

VSCode 接入本地大模型:用 Continue + Ollama 打通 TaoToken 配置链路 1. 为什么要在 VSCode 里同时接本地模型和 TaoToken很多开发者现在的状态是本地已经跑着 Ollama手里也有几个云端模型的 Key但 VSCode 里配置得乱七八糟——Continue 插件里塞了一堆 provider补全用一个模型聊天用另一个模型改代码又换一个最后连自己都记不清哪个请求走了哪条通道。更麻烦的是本地模型和云端模型的配置格式不一样切换一次要改半天文件改完还容易把 YAML 缩进搞崩。这篇要解决的问题就是在 VSCode 里用 Continue 插件把 Ollama 本地大模型和 TaoToken 的 Key/API 通道统一管起来。本地模型负责日常补全和离线对话TaoToken 通道负责需要更强推理能力的场景两边共用一套 Continue 配置骨架切换只改一个字段。适合谁看已经在本地跑过 Ollama、装过 Continue 插件但配置比较随意、想规范化的开发者。如果你还没装 Ollama下面也会给安装和拉模型的命令跟着做就行。核心检索词就三个VSCode、本地大模型、Continue Ollama外加 TaoToken 的 API 通道配置。我试过把 Continue 的 config.yaml 拆成本地模型段和云端通道段两部分来维护实测下来比每次手动改 provider 稳得多。下面直接给可复制的骨架。2. TaoToken 前置Key 和 API 通道准备TaoToken 在这里的角色是统一的 API 通道。Continue 支持 OpenAI 兼容接口TaoToken 提供的 API 地址可以直接填进 Continue 的apiBaseKey 填进apiKey这样云端模型和本地 Ollama 就能在同一个配置文件里共存。你需要先拿到两样东西第一API Key。登录 TaoToken 控制台在 API Keys 页面创建一个新 Key复制保存。这个 Key 只在创建时完整显示一次丢了就重新建。第二确认 API 地址。TaoToken 的 API 端点是https://taotoken.net/api注意这里不带任何查询参数直接作为apiBase的基础路径。Continue 里填的时候通常要带上/v1也就是https://taotoken.net/api/v1具体看下面配置段。注意API Key 不要写进会提交到 Git 的文件里。Continue 的 config.yaml 默认在用户目录下不在项目仓库内相对安全但如果你把配置同步到 dotfiles 仓库记得用环境变量或者单独的 secrets 文件。相关入口放这里按需取用模型对话体验https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentmodel_chatCoding Plan长期编码/Agent 场景https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentcoding_plan控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentconsoleAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentapi_keys接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentdoc3. 可复制配置Ollama TaoToken 双通道骨架3.1 先确认 Ollama 服务在跑如果你还没装 OllamaMac 上直接brew install ollamaWindows/Linux 去官网下安装包。装完拉一个代码模型ollama pull qwen2.5-coder:14b再拉一个轻量补全模型专门给 Tab 自动补全用不占太多内存ollama pull qwen2.5-coder:7b验证服务是否正常curl http://localhost:11434/api/tags能返回模型列表的 JSON说明 Ollama 服务在 11434 端口正常监听。如果这条命令报连接失败先执行ollama serve把服务拉起来。3.2 Continue 配置文件位置新版 Continue 用的是config.yaml不再是旧的config.json。打开方式有两种Continue 侧边栏点齿轮图标选 Open Config或者命令面板CtrlShiftP输入Continue: Open Config File。文件路径Mac/Linux~/.continue/config.yamlWindows%USERPROFILE%\.continue\config.yaml3.3 完整 config.yaml 骨架下面这份配置同时包含 Ollama 本地模型和 TaoToken 云端通道直接复制后把apiKey换成你自己的name: Local Ollama TaoToken version: 0.0.1 schema: v1 models: # 本地 Ollama聊天 编辑 应用 - name: Qwen2.5-Coder 14B (Local) provider: ollama model: qwen2.5-coder:14b apiBase: http://localhost:11434 roles: - chat - edit - apply contextWindow: 32768 maxTokens: 4096 # TaoToken 云端通道OpenAI 兼容接口 - name: TaoToken GPT (Cloud) provider: openai model: gpt-4o-mini apiBase: https://taotoken.net/api/v1 apiKey: sk-你的TaoToken密钥 roles: - chat - edit contextWindow: 128000 maxTokens: 4096 # Tab 自动补全用本地轻量模型 tabAutocompleteModel: name: Qwen2.5-Coder 7B (Autocomplete) provider: ollama model: qwen2.5-coder:7b apiBase: http://localhost:11434 # 关闭匿名遥测 allowAnonymousTelemetry: false几个关键点解释一下。roles字段决定这个模型能干什么chat是对话edit是选中代码后让 AI 改apply是把 AI 返回的代码块直接应用到文件。本地 14B 模型三个角色都开云端模型只开 chat 和 edit避免误操作。apiBase对 Ollama 是http://localhost:11434不带/v1对 TaoToken 是https://taotoken.net/api/v1带/v1。这两个别搞混搞混就是 404。tabAutocompleteModel是独立字段不放在models列表里。它只负责行内补全用 7B 小模型响应更快。3.4 settings.json 里的 Continue 相关项Continue 本身大部分配置在 config.yaml但 VSCode 的settings.json里可以控制补全行为和遥测。打开CtrlShiftP→Preferences: Open User Settings (JSON)加上{ continue.enableTabAutocomplete: true, continue.telemetryEnabled: false, continue.enableConsoleLogs: false, editor.inlineSuggest.enabled: true }editor.inlineSuggest.enabled必须为 true否则 Tab 补全的灰色建议不会显示。continue.enableTabAutocomplete是 Continue 自己的开关两个都开才生效。4. 验证请求一次对话 一次补全4.1 验证本地 Ollama 通道保存 config.yaml 后重启 VSCode。打开 Continue 侧边栏顶部模型下拉框应该能看到Qwen2.5-Coder 14B (Local)。选中它在输入框里问一句用 Python 写一个读取 CSV 并统计每列空值数量的函数如果本地模型正常几秒内会开始流式输出。这一步验证的是 Ollama 服务 Continue 的 ollama provider 链路。4.2 验证 TaoToken 云端通道把顶部模型切到TaoToken GPT (Cloud)再问一句解释一下 Python 的 GIL 对多线程的影响这次请求会走https://taotoken.net/api/v1用你填的 Key 鉴权。如果返回正常说明 TaoToken 通道打通。如果报 401检查 Key 是否复制完整如果报 404检查apiBase是不是写成了https://taotoken.net/api而漏了/v1。4.3 验证 Tab 自动补全随便打开一个.py或.js文件输入半行代码比如def calculate_average(numbers):停一下应该会出现灰色的补全建议。按 Tab 接受。如果没出现先确认settings.json里两个开关都开了再确认 config.yaml 里tabAutocompleteModel字段存在且缩进正确。4.4 用 curl 单独验证 TaoToken 通道如果 Continue 里云端模型报错但你看不清具体原因可以绕过 Continue 直接用 curl 测curl https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -d { model: gpt-4o-mini, messages: [{role: user, content: ping}], max_tokens: 10 }返回带choices的 JSON 就说明通道和 Key 都没问题问题出在 Continue 配置层。5. 本篇常见错排查5.1 Failed to connect to Ollama最常见的原因是 Ollama 后台没启动。执行ollama serve看是否报端口占用。如果 11434 被别的进程占了Ollama 会启动失败。Mac 上可以用lsof -i :11434查占用进程。另一个原因是apiBase写错。Ollama 的地址是http://localhost:11434不要加/v1也不要加/api。Continue 的 ollama provider 会自己拼路径。5.2 model not foundconfig.yaml 里的model字段必须和ollama list输出的名称完全一致包括 tag。比如你拉的是qwen2.5-coder:14b配置里就不能写qwen2.5-coder或qwen2.5-coder:latest。先跑一遍ollama list把输出里的 NAME 列原样复制到配置里。5.3 TaoToken 通道报 401 / 403401 通常是 Key 无效或没带。检查apiKey字段有没有写、有没有多余空格。403 可能是 Key 权限不足或者额度问题去控制台确认 Key 状态和余额。5.4 Tab 自动补全不生效三个检查点settings.json里continue.enableTabAutocomplete和editor.inlineSuggest.enabled都为 trueconfig.yaml 里tabAutocompleteModel字段存在且缩进正确Ollama 里确实拉了那个补全模型。三个都满足还不生效重启 VSCode 窗口不是重载是关掉重开。5.5 YAML 缩进报错YAML 只能用空格不能用 Tab。复制上面的骨架后如果你手动改了某行很容易把空格改成 Tab。VSCode 里开启Render Whitespace能看到空格和 Tab 的区别。另一个常见错误是models列表项前的-和字段对齐-后面要跟一个空格再写name。5.6 本地模型响应慢或卡死14B 模型在 32G 内存的 Mac 上跑 q4 量化是流畅的但同时开太多应用会触发 swap。可以设置 Ollama 模型常驻内存避免每次请求重新加载export OLLAMA_KEEP_ALIVE30m ollama serve这样模型加载后在内存里保持 30 分钟。如果还是慢换 7B 模型做日常对话14B 只在需要时切过去。6. 把两条通道用顺手的几个习惯配置跑通之后日常使用建议固定一个分工Tab 补全永远走本地 7B不消耗任何云端额度日常问答和简单编辑走本地 14B遇到本地模型答不好的复杂推理、长上下文分析再手动切到 TaoToken 云端通道。这样既省额度又不会在简单问题上等云端往返。config.yaml 建议纳入你的 dotfiles 管理但apiKey那行用占位符实际 Key 通过环境变量注入或者手动填。Continue 目前对环境变量插值的支持有限最稳的做法是配置文件里留占位换机器时手动补一次。如果你后面要接 Agent 类的长时间编码任务可以了解下 Coding Plan 的通道配置接入方式和上面 OpenAI 兼容接口一致只是模型名和额度策略不同。接入文档里有完整的参数说明遇到本文没覆盖的报错可以去对照排查。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进