vscode+ollama+Qwen2.5本地大模型部署:把settings.json改到TaoToken
1. 为什么要在 VS Code 里同时接本地 Ollama 和云端通道
VS Code 里跑本地大模型这件事,很多人第一次尝试都会卡在同一个地方:模型是拉下来了,Continue 插件也装好了,但补全要么半天不出字,要么报一个看不懂的连接错误。我自己最开始用 Ollama 跑 Qwen2.5 的时候,机器风扇转得像起飞,补全延迟却高得离谱,写一行代码要等三四秒。后来才想明白,本地推理适合的是「隐私敏感 + 短上下文 + 高频小请求」,而真正需要长上下文、复杂推理的任务,交给云端模型更划算。
这篇要讲的就是把这两条链路统一起来:VS Code 通过 Continue 插件调用 Ollama 上的 Qwen2.5 本地模型,同时把插件的 settings.json 里 Base URL 和 API Key 指向 TaoToken 统一通道,让本地推理和云端兜底走同一套配置。这样你既保留了本地模型的离线能力和数据不出本机的优势,又能在本地模型扛不住的时候切到云端,不用来回改插件配置。
适合谁看:已经在用 VS Code 写代码、想试试本地大模型补全、但又不想被单一模型绑死的开发者。你需要的基础是会用命令行、知道 VS Code 插件怎么装、能看懂 JSON 配置。不需要你懂模型量化原理,也不需要你有 GPU 服务器,一台普通开发机就能跑起来。
核心检索词先明确一下:vscode + ollama + Qwen2.5 本地大模型部署,本质是把「编辑器插件 → 本地推理服务 → 模型文件」这条链路打通,再通过统一通道做云端兜底。下面按步骤来,每一步都给可复制的命令和配置。
2. 前置准备:Ollama 安装与 Qwen2.5 模型拉取
2.1 安装 Ollama 服务
Ollama 的安装方式在不同系统上不太一样。Linux 下可以直接下载官方 release 包,Windows 和 macOS 有对应的安装程序。这里以 Linux 为例,因为服务器和开发机场景最常见。
先确认你的系统架构,然后下载对应的包。官方 release 页面在 GitHub 上,如果下载速度慢,可以用镜像加速站点替换域名前缀。下载完成后解压到系统目录:
# 下载 Linux amd64 版本(版本号按最新 release 替换)
wget https://github.com/ollama/ollama/releases/download/v0.9.6/ollama-linux-amd64.tgz
# 解压到 /usr 目录,需要 sudo 权限
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
# 验证安装
ollama --version
如果你用的是 Windows,直接去官网下载 OllamaSetup.exe 双击安装即可,安装完 Ollama 会常驻在系统托盘。macOS 用户下载 dmg 拖进 Applications 就行。安装完成后,Ollama 默认会在 11434 端口起一个本地服务。
手动启动服务用这条命令:
ollama serve
正常情况下你会看到类似 Listening on 127.0.0.1:11434 的输出。这个端口后面配置插件时要用到。注意,如果你已经通过系统服务方式启动了 Ollama,再手动 ollama serve 会提示端口被占用,这时候不用管,服务已经在跑了。
2.2 拉取 Qwen2.5 模型
Qwen2.5 系列在 ModelScope 上有官方 GGUF 量化版本,适合本地推理。以代码场景常用的 Qwen2.5-Coder-1.5B-Instruct 为例,拉取命令是:
ollama run modelscope.cn/Qwen/Qwen2.5-Coder-1.5B-Instruct-GGUF
第一次执行会从 ModelScope 下载模型文件,1.5B 的量化版本大概几百 MB 到 1GB 左右,取决于量化精度。下载完成后会自动进入交互模式,你可以直接输入一句话测试:
>>> 写一个 Python 函数,判断一个数是否为质数
如果模型能正常返回代码,说明本地推理链路已经通了。退出交互模式用 /bye 或者 Ctrl+D。
这里有个坑要注意:ModelScope 的模型名格式是 modelscope.cn/组织名/模型名,如果你直接写 qwen2.5-coder 这种短名,Ollama 会去官方 registry 找,可能找不到或者拉到不同版本。建议用完整的 ModelScope 路径,确保拉到的是你想要的量化版本。
模型拉下来之后,用 ollama list 可以看到本地已有的模型列表。记住你拉取的模型完整名称,后面配置插件时要填进去。
2.3 安装 Continue 插件
VS Code 里调用 Ollama 最顺手的插件是 Continue。在 VS Code 扩展市场搜索 Continue,安装后侧边栏会出现 Continue 的图标。首次打开会让你选模型提供商,这里先随便选一个跳过,因为我们要手动改配置文件。
Continue 的配置文件默认在用户目录下的 .continue 文件夹里,VS Code 里也可以通过命令面板打开:Continue: Open Config。配置文件是 JSON 格式,路径通常是 ~/.continue/config.json(旧版)或 ~/.continue/config.yaml(新版)。这篇以 JSON 配置为例,因为 settings.json 风格的配置更直观,也方便和 VS Code 原生设置对照。
3. 可复制配置:settings.json 与 Continue config 改到 TaoToken
3.1 理解配置结构
Continue 的配置里,模型定义分两部分:models 数组里每个对象描述一个模型,包含 title、provider、model、apiBase、apiKey 等字段。本地 Ollama 的 provider 是 ollama,云端 OpenAI 兼容接口的 provider 是 openai。
我们要做的是:保留一个 Ollama 本地模型条目,再加一个指向 TaoToken 统一通道的条目。这样在 Continue 的模型选择器里可以随时切换,本地模型负责快速补全,云端模型负责复杂任务。
TaoToken 的 API 地址是 https://taotoken.net/api,兼容 OpenAI 的接口格式。API Key 需要在控制台创建,创建后复制出来填到配置里。模型 ID 填你在 TaoToken 上可用的模型名,比如 claude-sonnet-4-5 或 gpt-4o 这类。
3.2 完整的 config.json 片段
下面是一份可以直接复制修改的配置。注意把 apiKey 换成你自己的,model 字段换成你实际要用的模型 ID:
{
"models": [
{
"title": "Qwen2.5 Coder Local",
"provider": "ollama",
"model": "modelscope.cn/Qwen/Qwen2.5-Coder-1.5B-Instruct-GGUF",
"apiBase": "http://127.0.0.1:11434"
},
{
"title": "TaoToken Cloud",
"provider": "openai",
"model": "claude-sonnet-4-5",
"apiBase": "https://taotoken.net/api",
"apiKey": "sk-你的TaoToken密钥",
"contextLength": 200000
}
],
"tabAutocompleteModel": {
"title": "Qwen2.5 Coder Local",
"provider": "ollama",
"model": "modelscope.cn/Qwen/Qwen2.5-Coder-1.5B-Instruct-GGUF",
"apiBase": "http://127.0.0.1:11434"
},
"embeddingsProvider": {
"provider": "ollama",
"model": "nomic-embed-text",
"apiBase": "http://127.0.0.1:11434"
}
}
几个关键点解释一下。tabAutocompleteModel 是代码补全用的模型,这里指向本地 Qwen2.5,因为补全请求频率高,走本地延迟低、不消耗云端额度。embeddingsProvider 用于代码索引,本地跑一个 embedding 模型就够。models 数组里的云端条目用于对话和复杂任务,需要手动在 Continue 界面里切换。
如果你用的是新版 Continue 的 YAML 配置,结构类似,只是格式换成 YAML。核心字段名不变:provider、model、apiBase、apiKey。
3.3 VS Code 原生 settings.json 的配合
有些场景下你还会用到 VS Code 原生的 settings.json,比如某些插件会读取 github.copilot 或自定义的 API 配置。如果你想把 VS Code 层面的默认 API 端点也指向 TaoToken,可以在用户 settings.json 里加:
{
"continue.enableTabAutocomplete": true,
"continue.telemetryEnabled": false
}
这里主要是关掉遥测、开启补全。真正决定请求打到哪里的还是 Continue 自己的 config.json,VS Code 原生 settings.json 只控制插件行为开关。不要混淆这两个文件的位置:VS Code 的 settings.json 在 ~/.config/Code/User/settings.json(Linux)或 %APPDATA%\Code\User\settings.json(Windows),Continue 的 config.json 在 ~/.continue/ 下。
3.4 三件套对照表
配置云端模型时,Base URL、Key、Model ID 这三件套必须同时正确,缺一个都会报错。对照如下:
| 配置项 | 本地 Ollama | TaoToken 云端 |
|---|---|---|
| Base URL | http://127.0.0.1:11434 | https://taotoken.net/api |
| API Key | 不需要(留空) | sk-开头,控制台创建 |
| Model ID | modelscope.cn/Qwen/Qwen2.5-Coder-1.5B-Instruct-GGUF | claude-sonnet-4-5 等 |
本地 Ollama 的 apiBase 不要加 /v1 后缀,Continue 的 ollama provider 会自动处理路径。云端 OpenAI 兼容接口的 apiBase 填到 /api 即可,不要自己拼 /v1/chat/completions,插件会补全。
4. 验证请求:一次对话确认命中预期端点
4.1 启动 Ollama 并确认服务
配置改完后,先确保 Ollama 服务在跑:
# 检查服务状态
curl http://127.0.0.1:11434/api/tags
如果返回一个 JSON,里面有你拉取的模型列表,说明本地服务正常。如果返回 Connection refused,说明 Ollama 没启动,执行 ollama serve 再试。
4.2 在 Continue 里切换模型并对话
打开 VS Code,按 Ctrl+Shift+P 调出命令面板,输入 Continue: Focus Chat 打开对话面板。在面板顶部的模型选择器里,你应该能看到两个条目:Qwen2.5 Coder Local 和 TaoToken Cloud。
先选本地模型,输入一句测试:
用 Python 写一个快速排序
观察响应速度。本地 1.5B 模型在普通 CPU 上大概每秒出 10-20 个 token,如果明显更慢,可能是模型太大或者机器负载高。响应正常说明本地链路通了。
然后切换到 TaoToken Cloud,输入同样的问题。这次请求会打到 https://taotoken.net/api,由云端模型返回。如果配置正确,你会看到响应速度明显更快,内容质量也更高。
4.3 用 curl 直接验证云端端点
如果想绕过插件直接确认 TaoToken 端点可用,可以用 curl 发一个最小请求:
curl https://taotoken.net/api/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-你的密钥" \
-d '{
"model": "claude-sonnet-4-5",
"messages": [{"role": "user", "content": "回复OK两个字"}],
"max_tokens": 10
}'
如果返回的 JSON 里有 choices 数组且内容正常,说明 Key 和端点都没问题。这一步能帮你快速区分是插件配置问题还是账号/Key 问题。
4.4 确认请求命中预期端点
怎么知道请求真的打到了 TaoToken 而不是别的地方?两个办法。一是看 Continue 的输出日志:VS Code 底部面板切到 Output,选择 Continue,里面会打印每次请求的 URL。二是看 TaoToken 控制台的用量记录,每次调用都会有日志。两边对照,就能确认请求路径符合预期。
本地模型的验证更简单,Ollama 的日志会打印每次推理请求。你可以在启动 ollama serve 的终端里看到 POST /api/chat 之类的记录。
5. 常见报错排查:401、local proxy failed、reading choices
5.1 401 Unauthorized
这是最常见的云端配置错误。原因通常是 API Key 填错、Key 过期、或者 Key 前面多了空格。检查步骤:
第一,确认 config.json 里 apiKey 字段的值是完整的 sk- 开头字符串,没有换行、没有多余引号嵌套。第二,去 TaoToken 控制台确认这个 Key 还在有效期内,没有被你手动删除。第三,确认 apiBase 填的是 https://taotoken.net/api,不是 https://taotoken.net(少了 /api)也不是 https://taotoken.net/api/v1(多了 /v1)。
如果 curl 直接请求也返回 401,那就是 Key 本身的问题,重新创建一个再试。如果 curl 正常但插件报 401,那就是 config.json 的字段名写错了,检查是不是写成了 api_key 或 apikey,Continue 用的是驼峰 apiKey。
5.2 local proxy failed
这个报错通常出现在 Continue 尝试连接本地 Ollama 但连不上的时候。可能原因有三个:
一是 Ollama 服务没启动。执行 ollama serve 或者检查系统服务状态。二是端口被占用或改了。默认 11434,如果你改过 OLLAMA_HOST 环境变量,config.json 里的 apiBase 也要跟着改。三是防火墙拦截。某些系统上本地回环请求也会被安全软件拦,临时关掉试试。
还有一个隐蔽原因:Continue 的 ollama provider 在某些版本里会先尝试走系统代理。如果你系统设了 HTTP_PROXY 环境变量,本地请求可能被代理到外部导致失败。解决办法是在 VS Code 的启动环境里清掉代理变量,或者在 config.json 里给 ollama 条目加 "apiBase": "http://127.0.0.1:11434" 明确指定不走代理。
5.3 reading choices 报错
这个报错一般长这样:Cannot read properties of undefined (reading 'choices')。意思是插件期望返回体里有 choices 字段,但实际返回的结构不对。
原因通常是接口返回了错误信息而不是正常的 chat completion 结构。比如 Key 无效时,服务端返回的是 {"error": {...}},插件去读 choices 就报 undefined。所以看到这个错,先按 401 的排查步骤检查 Key 和端点,大概率是认证或路径问题。
另一个可能是模型 ID 写错了。如果 model 字段填了一个 TaoToken 上不存在的模型名,服务端会返回错误,插件同样读不到 choices。去控制台确认模型 ID 的准确拼写,注意大小写和连字符。
5.4 OAuth 相关报错
如果你在配置里误用了需要 OAuth 的 provider(比如某些插件的 GitHub Copilot 通道),会看到 OAuth token 相关的错误。Continue 里如果 provider 写成 github-copilot 但没走官方登录流程,就会报这个。
解决办法很简单:把 provider 改成 openai,用 API Key 方式认证。TaoToken 走的是标准 Bearer Token,不需要 OAuth 流程。检查 config.json 里云端条目的 provider 字段是不是 openai,不是的话改过来。
5.5 模型拉取失败
ollama run 拉模型时如果卡住或报错,先检查网络能不能访问 ModelScope。国内访问 ModelScope 一般没问题,如果超时,可以换一个量化版本或者用 ollama pull 代替 ollama run 先拉取再运行。
模型名写错也会导致拉取失败。ModelScope 上的模型路径要完整复制,包括 modelscope.cn/ 前缀。如果提示 model not found,去 ModelScope 网站搜一下确切的模型名。
6. 把本地推理和云端兜底串成日常工作流
配置跑通之后,实际用起来可以这样分工。日常写代码时的行内补全走本地 Qwen2.5,因为补全请求频繁,本地响应快且不消耗云端额度。遇到需要解释复杂逻辑、重构大段代码、或者本地模型明显答不好的问题,手动切到 TaoToken Cloud 条目,用云端模型处理。
Continue 的模型切换在对话面板顶部,点一下就能换,不用改配置文件。如果你想让某个操作默认走云端,可以在 config.json 里把云端模型放到 models 数组第一位,插件默认选第一个。
还有一个实用技巧:Continue 支持在对话里用 @ 引用文件,把相关代码文件拖进上下文。本地模型上下文窗口小,引用太多文件会截断,这时候切云端模型更合适。云端模型上下文长,能一次吃下整个模块的代码。
关于成本,本地推理除了电费没有额外开销,云端按 token 计费。把高频小请求留给本地、低频大请求交给云端,是性价比比较高的组合。你可以在 TaoToken 控制台设置用量提醒,避免意外超支。
最后提醒一点:本地模型的文件和配置都在你自己机器上,代码不会离开本机。云端请求会经过 TaoToken 通道,敏感代码建议脱敏后再发,或者干脆只用本地模型处理。这个边界自己把握好就行。
配置过程中如果遇到本文没覆盖的报错,可以去 TaoToken 的接入文档对照接口格式,或者用模型对话功能直接问云端模型怎么排查。文档地址在 https://taotoken.net/doc,API Key 在 https://taotoken.net/api-keys 创建。长期做编码和 Agent 任务的话,Coding Plan 页面有更详细的套餐说明:https://taotoken.net/coding-plan。
更多推荐
所有评论(0)