news 2026/10/2 23:18:37

[软件工具使用记录] Windows离线Ollama部署本地模型并配置Continue实现离线代码补全,把Continue的Base URL改到TaoToken

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[软件工具使用记录] Windows离线Ollama部署本地模型并配置Continue实现离线代码补全,把Continue的Base URL改到TaoToken

1. 为什么要在 Windows 上折腾离线 Ollama 加 Continue

公司内网机器不能连外网,但代码还得写,补全还得有。这个场景其实挺常见的:开发机在隔离网段,或者你出差带着笔记本在没网的环境下干活。这时候本地跑一个小模型,配合 Continue 做代码补全,至少能把重复性的样板代码、简单函数补全搞定。

Ollama 在 Windows 上的安装包大概 700MB 到 800MB,装完之后可以用ollama run拉模型。但问题在于,内网机器没法直接 pull,所以整个链路要拆成两步:先在有网的机器上把模型文件导出来,再拷到内网机器上导入。Continue 这边则是通过 OpenAI 兼容接口去调 Ollama 的本地服务,默认监听127.0.0.1:11434。

我实测下来,qwen2.5-coder 的 0.5b 或 1.5b 量化版在 16G 显存的机器上跑补全够用,32b 的话显存直接吃满,速度跟阅读速度差不多,补全体验比较碎。所以离线场景建议选小参数模型,把补全和聊天分开配置。

另外,如果你希望保留一条可切换的云端通道,可以把 Continue 的 Base URL 改到 TaoToken 的统一 Key/API 通道,这样断网时走本地 Ollama,有网时切到云端模型,配置里改一个字段就行。下面把完整链路拆开写。

2. 前置准备:Ollama 离线安装包与模型文件导出

2.1 在有网机器上安装 Ollama

先去 Ollama 官网下载 Windows 安装包,文件大概 700MB 到 800MB。安装过程没什么特别的,双击下一步就行。装完之后托盘会出现 Ollama 图标,默认开机自启。

安装完成后打开 cmd,执行:

ollama --version

能输出版本号就说明客户端就绪。接下来拉模型,比如:

ollama run qwen2.5-coder:0.5b

这一步会从远端下载模型。如果网络不稳定,可能会失败几次,多试几次一般能成。下载完成后,模型文件会落在:

C:\Users\你的用户名\.ollama\models\blobs

2.2 找到 gguf 文件并导出 Modelfile

进入 blobs 目录,按时间排序,找到最大的那个文件,通常就是 gguf 格式的模型权重。把它复制出来,改名为qwen2.5-coder0.5b.gguf。

然后导出 Modelfile:

ollama show qwen2.5-coder:0.5b --modelfile

把输出保存为Modelfile文件。这个文件里包含了 FROM 路径、模板、参数等。你需要把 FROM 那一行改成模型文件的真实相对路径,比如:

FROM ./qwen2.5-coder0.5b.gguf

如果你想让模型优先用中文回复,可以在模板里插入一句提示,比如翻译成英文后加到系统提示位置。改完之后,你手上应该有两个文件:qwen2.5-coder0.5b.gguf和Modelfile。

2.3 内网机器导入模型

把 Ollama 安装包和上面两个文件一起拷到内网机器。先装 Ollama,然后在两个文件所在目录的地址栏输入cmd回车,执行:

ollama create qwen2.5-coder0.5b -f Modelfile

create后面的名字可以自定义,建议和外网保持一致,方便后续配置。导入完成后:

ollama list

能看到模型就说明导入成功。如果托盘没启动 Ollama,手动运行一下即可。

3. Continue 的 config.json 可复制配置片段

Continue 是 VS Code 里的插件,离线安装需要下载 VSIX 文件。去 Continue 的 Releases 页面下载最新版 VSIX,拷到内网机器,在 VS Code 里通过“从 VSIX 安装”完成安装。

安装完成后,Continue 的配置文件在用户目录下的.continue文件夹里,文件名是config.json。下面是一个可复制的配置片段,把本地 Ollama 和 TaoToken 云端通道都写进去:

{ "models": [ { "title": "Ollama Local Coder", "provider": "ollama", "model": "qwen2.5-coder0.5b", "apiBase": "http://127.0.0.1:11434" }, { "title": "TaoToken Cloud", "provider": "openai", "model": "gpt-4o-mini", "apiKey": "你的TaoToken Key", "apiBase": "https://taotoken.net/api" } ], "tabAutocompleteModel": { "title": "Ollama Local Coder", "provider": "ollama", "model": "qwen2.5-coder0.5b", "apiBase": "http://127.0.0.1:11434" } }

这里有几个点要注意。provider写ollama时,Continue 会走 Ollama 的原生接口;写openai时,会走 OpenAI 兼容接口。TaoToken 的 API 地址是https://taotoken.net/api,Key 在控制台的 API Keys 页面生成。模型 ID 要填你实际可用的,比如gpt-4o-mini或claude-3-5-sonnet之类。

如果你想让补全走本地、聊天走云端,就把tabAutocompleteModel指向 Ollama,聊天模型选 TaoToken。这样断网时补全还能用,有网时聊天质量更高。

3.1 局域网共享 Ollama 的配置

如果项目组只有一台机器能跑模型,其他机器性能不够,可以让 Ollama 监听所有网卡。设置环境变量:

OLLAMA_HOST=0.0.0.0

然后重启 Ollama。用下面命令确认监听状态:

netstat -ano | findstr 11434

看到0.0.0.0:11434就说明局域网可访问。其他机器的 Continue 配置里,把apiBase改成部署机的 IP,比如:

{ "model": "qwen2.5-coder0.5b", "title": "Ollama Remote", "provider": "ollama", "apiBase": "http://192.168.1.100:11434" }

这样局域网内多台机器可以共用同一个模型服务。

4. 验证请求:curl /v1/models 与编辑器内补全触发

配置写完之后,先别急着在编辑器里试,用 curl 确认服务通不通。Ollama 默认提供 OpenAI 兼容接口,路径是/v1/models:

curl http://127.0.0.1:11434/v1/models

如果返回 JSON 列表,里面有你的模型名,说明 Ollama 服务正常。接着测 TaoToken 通道:

curl https://taotoken.net/api/v1/models -H "Authorization: Bearer 你的Key"

能返回模型列表就说明云端通道也通。两个都通之后,打开 VS Code,在 Continue 面板里切换模型,触发一次补全。具体动作是:新建一个.py文件,输入def然后停住,看是否出现灰色补全建议。如果没反应,检查 Continue 的输出日志,看请求发到了哪个地址。

实测下来,本地 Ollama 的补全延迟在几百毫秒到一秒左右,取决于模型大小和硬件。0.5b 的模型基本秒出,1.5b 稍慢但可接受。如果补全一直不出来,先确认tabAutocompleteModel配置正确,再确认 Ollama 进程在跑。

4.1 切换云端通道的验证

把 Continue 的聊天模型切到 TaoToken,发一句“写一个 Flask 路由示例”,看是否正常返回。如果返回 401,说明 Key 不对;如果返回连接超时,检查网络是否能访问taotoken.net。这一步的目的是确认云端通道随时可切,断网时用本地,有网时用云端。

5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth

5.1 401 Unauthorized

这个最常见,一般是 TaoToken 的 Key 没填对,或者 Key 前面多了空格。检查config.json里的apiKey字段,确认没有多余字符。另外,如果 Key 过期或额度用完,也会返回 401,去控制台重新生成一个即可。

5.2 local proxy failed

Continue 在走 Ollama 时,如果apiBase写成了https而不是http,或者端口不对,会报 local proxy failed。Ollama 默认是http://127.0.0.1:11434,不要加/v1后缀在apiBase里,Continue 会自己拼。如果你改成了局域网 IP,确认防火墙放行了 11434 端口。

5.3 reading choices 报错

这个通常出现在 OpenAI 兼容接口返回格式不对时。Ollama 的/v1/chat/completions返回结构跟 OpenAI 基本一致,但如果模型名写错,Ollama 会返回错误信息,Continue 解析choices字段时就会报 reading choices。检查model字段是否和ollama list里的名字完全一致,大小写敏感。

5.4 OAuth 相关报错

如果你在 Continue 里登录了账号,但离线环境下 OAuth 回调失败,会一直卡在登录页。离线场景建议直接用config.json手动配置,不要走账号登录。把config.json里的模型配置写全,Continue 会优先读本地配置。

5.5 模型导入后 ollama list 看不到

检查Modelfile里的 FROM 路径是否指向了正确的 gguf 文件。如果路径是相对路径,确保执行ollama create时的工作目录就是文件所在目录。另外,gguf 文件如果拷贝不完整,导入也会失败,比对一下文件大小。

6. 断网与联网双通道的切换建议

整套链路跑通之后,你手上其实有两个通道:本地 Ollama 和 TaoToken 云端。日常用法是:补全走本地,聊天走云端。如果哪天断网了,把聊天模型也切到本地,虽然质量下降,但至少能用。

TaoToken 的接入文档里有详细的模型列表和参数说明,API Keys 页面可以管理 Key。如果你长期做编码和 Agent 相关的工作,Coding Plan 那边有更完整的额度方案。模型对话页面可以直接测试各个模型的返回效果,方便你决定用哪个模型做补全、哪个做聊天。

最后提醒一点:离线部署的模型文件比较大,拷贝的时候用移动硬盘或者内网共享,别用聊天工具传,容易损坏。导入完成后,记得把config.json备份一份,换机器时直接复制过去就能用。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 23:18:35

使用 Jev 作为 search reranker:基准测试与实现方法

作者:来自 Elastic Dustin Coates 我们让 Jev 为 Elasticsearch hybrid search 结果进行评分,并让一个简短的 Python policy 执行 reranking,在 250 个 Amazon Shopping Queries 上将 nDCG10 从 0.9351 提升到了 0.9565,所有代码都…

作者头像 李华
网站建设 2026/10/2 23:17:07

【RabbitMQ #13】 | 延迟消息

简介:讲解 RabbitMQ 两种实现延迟消息方案:DLX 死信交换机、延迟消息插件;针对订单超时业务痛点,引入阶梯式延迟消息优化方案,附完整 Go 代码。一、什么是延迟消息延迟消息:生产者发送消息时指定延时时间&a…

作者头像 李华
网站建设 2026/10/2 23:09:53

MCP协议入门指南:用TaoToken统一Key跑通工具调用链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华