尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

[软件工具使用记录] 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\blobs2.2 找到 gguf 文件并导出 Modelfile进入 blobs 目录按时间排序找到最大的那个文件通常就是 gguf 格式的模型权重。把它复制出来改名为qwen2.5-coder0.5b.gguf。然后导出 Modelfileollama 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 Modelfilecreate后面的名字可以自定义建议和外网保持一致方便后续配置。导入完成后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/apiKey 在控制台的 API Keys 页面生成。模型 ID 要填你实际可用的比如gpt-4o-mini或claude-3-5-sonnet之类。如果你想让补全走本地、聊天走云端就把tabAutocompleteModel指向 Ollama聊天模型选 TaoToken。这样断网时补全还能用有网时聊天质量更高。3.1 局域网共享 Ollama 的配置如果项目组只有一台机器能跑模型其他机器性能不够可以让 Ollama 监听所有网卡。设置环境变量OLLAMA_HOST0.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/modelscurl 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、OAuth5.1 401 Unauthorized这个最常见一般是 TaoToken 的 Key 没填对或者 Key 前面多了空格。检查config.json里的apiKey字段确认没有多余字符。另外如果 Key 过期或额度用完也会返回 401去控制台重新生成一个即可。5.2 local proxy failedContinue 在走 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备份一份换机器时直接复制过去就能用。
返回列表