10 分钟用 TaoToken 跑通 Open WebUI 的模型网关
告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度1. 先把目标说清楚让 Open WebUI 的模型列表接上 TaoTokenOpen WebUI 是一个可以本地部署的聊天前端界面接近常见的对话产品支持多模型切换、会话历史、提示词预设还能通过 OpenAI 兼容协议对接外部模型服务。它的好处是数据留在自己机器上前端体验又足够顺手。很多人本地跑起来之后第一件想做的事就是把模型来源换成自己常用的网关让聊天页面里直接出现可切换的模型列表。这篇要做的就是这个。你会在本地用 Docker 启动 Open WebUI把它的 OpenAI 兼容环境变量指向 TaoToken 的 API 地址https://taotoken.net/api然后在页面里看到模型下拉框切换模型后正常对话。整个过程围绕三条线容器怎么起、环境变量怎么填、页面里怎么验证模型真的通了。适合谁已经在本地装好 Docker、想给 Open WebUI 换一个稳定模型入口的人或者刚接触 Open WebUI想先跑通一条最小可用链路的人。不需要你改 Open WebUI 源码也不需要额外写后端服务全部通过环境变量完成。先明确一个概念Open WebUI 里的「模型网关」本质就是它读取OPENAI_API_BASE_URL和OPENAI_API_KEY这两个变量然后按 OpenAI 的/v1/models、/v1/chat/completions协议去请求。只要目标服务兼容这套协议模型列表和对话就能正常显示。TaoToken 提供的就是这样一个兼容入口所以配置动作集中在环境变量上。下面按「拿 Key → 起容器 → 填变量 → 页面验证」的顺序走每一步都给完整命令和参数说明。2. 操作步骤从创建 Key 到 docker run 起容器2.1 创建 API Key打开官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end登录后进入控制台在 API Keys 页面创建一个新的 Key。创建时建议给它起一个能认出用途的名字比如openwebui-local方便以后区分。复制出来的 Key 通常以固定前缀开头只显示一次先存到本地临时文件或密码管理器里。这一步的产物就是一个字符串后面会填进OPENAI_API_KEY。注意不要把它写进会提交到 Git 的配置文件里本地测试可以用.env文件并加进.gitignore。2.2 准备 docker run 命令Open WebUI 官方镜像可以直接拉取运行。下面这条命令把容器端口映射到本机 3000并把数据卷挂到本地目录避免重启后会话丢失docker run -d \ --name open-webui \ -p 3000:8080 \ -v open-webui-data:/app/backend/data \ -e OPENAI_API_BASE_URLhttps://taotoken.net/api \ -e OPENAI_API_KEY你的Key \ -e ENABLE_OPENAI_APItrue \ --restart unless-stopped \ ghcr.io/open-webui/open-webui:main参数逐个说明-p 3000:8080把容器内 8080 映射到本机 3000浏览器访问http://localhost:3000。-v open-webui-data:/app/backend/data用命名卷保存数据包括用户、会话、模型配置。想用本地目录也可以换成-v $(pwd)/open-webui-data:/app/backend/data。OPENAI_API_BASE_URL是核心变量填 TaoToken 的 API 地址https://taotoken.net/api。注意结尾不要多加/v1Open WebUI 会自己拼接路径多写反而容易 404。OPENAI_API_KEY填刚才创建的 Key。ENABLE_OPENAI_API保持 true确保 OpenAI 兼容通道开启。--restart unless-stopped让容器在机器重启后自动拉起本地长期用比较省心。如果你更习惯用 compose可以写成docker-compose.ymlservices: open-webui: image: ghcr.io/open-webui/open-webui:main container_name: open-webui ports: - 3000:8080 volumes: - open-webui-data:/app/backend/data environment: - OPENAI_API_BASE_URLhttps://taotoken.net/api - OPENAI_API_KEY你的Key - ENABLE_OPENAI_APItrue restart: unless-stopped volumes: open-webui-data:两种方式等价选一种即可。启动后第一次访问会要求创建管理员账号这个账号只存在本地和 TaoToken 的 Key 是两回事。2.3 环境变量清单把和模型接入相关的变量集中列一下方便你对照检查变量名作用建议值OPENAI_API_BASE_URLOpenAI 兼容请求的根地址https://taotoken.net/apiOPENAI_API_KEY调用凭证控制台创建的 KeyENABLE_OPENAI_API是否启用 OpenAI 兼容通道trueOPENAI_API_CONFIGS多连接配置可选需要多入口时再填WEBUI_SECRET_KEY会话加密密钥可选自定义随机串OPENAI_API_CONFIGS是进阶项当你想同时挂多个兼容入口时才需要单入口场景留空即可。WEBUI_SECRET_KEY不填也能跑但长期使用建议固定一个值避免容器重建后登录态失效。2.4 启动并查看日志执行完 docker run 后用下面命令确认容器状态和启动日志docker ps --filter nameopen-webui docker logs -f open-webui日志里出现类似Uvicorn running on http://0.0.0.0:8080就说明服务起来了。如果看到端口占用报错把-p 3000:8080换成其他本机端口比如-p 3001:8080。3. TaoToken 接入与配置让模型列表出现在页面里3.1 确认 API 地址拼接方式Open WebUI 请求模型列表时会向OPENAI_API_BASE_URL后面拼接/v1/models。所以当OPENAI_API_BASE_URLhttps://taotoken.net/api时实际请求的是https://taotoken.net/api/v1/models。这也是为什么前面强调不要自己再加/v1否则会变成/api/v1/v1/models直接 404。你可以先用 curl 单独验证这个地址是否返回模型列表curl -s https://taotoken.net/api/v1/models \ -H Authorization: Bearer 你的Key | head -c 500返回 JSON 里带data数组说明 Key 和地址都没问题。这一步能把「Key 错」和「Open WebUI 配置错」两类问题分开排障时很有用。3.2 在页面里检查连接浏览器打开http://localhost:3000用刚创建的管理员账号登录。进入右上角头像 → 设置 → 模型或「连接」可以看到 OpenAI 兼容入口。如果环境变量生效这里会显示一个默认连接地址就是https://taotoken.net/api。TaoToken 会以默认供应商身份出现在 Open WebUI 的 API 地址设置中也就是说你不需要手动新增连接容器启动时读到的环境变量已经把它注册好了。如果这里显示为空优先检查容器是否真的读到了变量docker exec open-webui env | grep OPENAI输出里应该能看到OPENAI_API_BASE_URL和OPENAI_API_KEY。如果 Key 显示为空说明启动命令里没传进去需要删掉容器重新 run。3.3 模型下拉框与切换连接正常后回到聊天页面左上角或输入框附近会有模型选择下拉框。点开它会列出从/v1/models拉到的模型。选中任意一个发一条测试消息比如「用一句话解释什么是向量数据库」。如果收到回复说明整条链路通了。切换模型时不需要重启容器Open WebUI 会在每次请求时带上当前选中的模型名。你可以在同一个会话里切换不同模型对比回答也可以新建会话分别测试。提示如果下拉框是空的先确认 curl 能拿到模型列表再看 Open WebUI 日志里有没有请求报错。多数情况是地址多写了/v1或 Key 复制时带了空格。3.4 多连接配置可选如果你有多个兼容入口想在下拉框里区分来源可以用OPENAI_API_CONFIGS。它是一个 JSON 字符串格式大致如下-e OPENAI_API_CONFIGS{1:{enable:true,tags:[taotoken]}}单入口场景不需要这个保持默认即可。多入口时注意每个连接的 URL 和 Key 要对应正确否则会出现部分模型能列、部分报 401 的情况。4. 可验证结果与失败分支4.1 预期结果配置完成后你应该能看到这几个现象容器正常运行docker ps里有 open-webui浏览器打开 3000 端口能登录设置里的 OpenAI 连接地址显示https://taotoken.net/api聊天页面模型下拉框有可选模型选中模型发消息能收到回复。关于对话截图这里用文字描述页面状态代替聊天页顶部显示当前模型名输入框下方有发送按钮发送后消息气泡先显示用户内容随后出现模型回复。模型下拉框展开时是一列模型名称点击即切换。你本地跑通后看到的界面就是这个样子。4.2 常见失败分支401 UnauthorizedKey 错误或没传进容器。用docker exec open-webui env | grep OPENAI_API_KEY确认重新创建容器时确保 Key 没有多余空格。404 Not Found地址拼接错误。检查OPENAI_API_BASE_URL是否误写成https://taotoken.net/api/v1改回https://taotoken.net/api后重建容器。模型列表为空但 curl 正常可能是 Open WebUI 缓存了旧配置。删掉容器和卷重新来一次或者进设置里手动触发一次连接刷新。容器启动即退出看docker logs open-webui常见原因是端口被占用或镜像拉取不完整。换端口或重新 pull 镜像。页面能开但发消息转圈检查本机网络是否能访问https://taotoken.net/api以及容器内 DNS 是否正常。可以在容器里执行curl测试。注意排障时先分层先确认 curl 直连 API 是否通再确认容器环境变量最后看页面配置。这样能避免在错误的方向上反复改配置。5. 限制、成本与模型选择Open WebUI 本身是开源前端本地运行不产生额外费用成本主要来自模型调用。TaoToken 侧的计费方式、可用模型、速率限制以官网和控制台实际展示为准不同时间可能有调整配置前建议先看一眼控制台里的说明。模型选择上日常对话可以用响应快的轻量模型长文写作或代码任务再切到能力更强的模型。Open WebUI 的模型下拉框让你可以在同一个界面里切换不用改任何配置。如果你发现某个模型响应特别慢先确认是不是当前网络到 API 的延迟问题而不是模型本身的问题。长期使用建议把WEBUI_SECRET_KEY固定下来并把数据卷做好备份。容器重建时只要卷还在会话和配置就不会丢。Key 的管理也在控制台完成需要轮换时重新创建一个更新容器环境变量后重建即可。最后一步回到聊天页面选一个模型发一句「你好帮我列三个学习 Docker 的练习项目」收到回复就说明这条链路已经稳定可用。后面你要做的只是按需切换模型和整理自己的提示词预设。 告别海外账号与网络限制稳定直连全球优质大模型限时半价接入中。 点击领取海量免费额度

相关新闻

同一把 TaoToken Key 从 Claude Code 切到 Codex:AGENTS.md 工作流继续用

同一把 TaoToken Key 从 Claude Code 切到 Codex:AGENTS.md 工作流继续用

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

2026/9/22 1:02:29 阅读更多 →
Emscripten 入门导读:基于 LLVM 的 C/C++ 到 WebAssembly 编译器工具链

Emscripten 入门导读:基于 LLVM 的 C/C++ 到 WebAssembly 编译器工具链

Emscripten 入门导读:基于 LLVM 的 C/C 到 WebAssembly 编译器工具链 【免费下载链接】emscripten Emscripten: An LLVM-to-WebAssembly Compiler 项目地址: https://gitcode.com/gh_mirrors/em/emscripten Emscripten 是一套以 LLVM 为核心的完整编译器工具…

2026/9/22 0:22:09 阅读更多 →
Bluebird Promise 库版本演进全解析:从 0.3.0 到 3.7.2 的完整变更日志深度解读

Bluebird Promise 库版本演进全解析:从 0.3.0 到 3.7.2 的完整变更日志深度解读

后端 【免费下载链接】bluebird :bird: :zap: Bluebird is a full featured promise library with unmatched performance. 项目地址: https://gitcode.com/gh_mirrors/bl/bluebird 点击查看 免费下载 本篇技术指南以仓库 docs/docs/changelog.md 为唯一主线&#…

2026/9/22 1:43:03 阅读更多 →

最新新闻

3个核心模块搞定录屏软件手机版,面试必问的底层逻辑

3个核心模块搞定录屏软件手机版,面试必问的底层逻辑

3个核心模块搞定录屏软件手机版,面试必问的底层逻辑 官方文档里全是晦涩的 API 定义和回调机制,读完脑子还是空的,根本抓不住重点。 别慌,今天不讲虚的,直接拆解一个能跑的 录屏软件手机版 核心实现。 这不仅是项目实战,更是 面试必问…

2026/9/22 2:07:09 阅读更多 →
别再扯蛋了!3个步骤搞定证书补办完整示例

别再扯蛋了!3个步骤搞定证书补办完整示例

别再扯蛋了!3个步骤搞定证书补办完整示例 是不是觉得看了一堆教程,真到了要写项目或者应对面试时,脑子一片空白?尤其是面对那些看似简单实则坑很多的流程类问题,比如证书补办,很多人只会背八股文,却拿不出 完整示例…

2026/9/22 2:07:09 阅读更多 →
3天搞定郑州市电子地图部署,一文搞懂底层原理

3天搞定郑州市电子地图部署,一文搞懂底层原理

3天搞定郑州市电子地图部署,一文搞懂底层原理 配置环境就卡半天,依赖库版本冲突,坐标偏移搞不清,是不是你也被郑州市电子地图的本地化部署折磨过?很多刚入行的开发者,光在 pom.xml 或者 package.json…

2026/9/22 2:07:09 阅读更多 →
3天搞定打野提莫,从入门到精通避坑指南

3天搞定打野提莫,从入门到精通避坑指南

3天搞定打野提莫,从入门到精通避坑指南 配置环境就卡半天?别急,这锅不怪你。 很多刚接触【打野提莫】相关技术栈的朋友,都在第一步就劝退。 今天带你从【入门到精通】,彻底解决环境搭建与核心逻辑问题。 项目目标:我们要做什么…

2026/9/22 2:07:09 阅读更多 →
c4d渲染教程新手避坑指南:从报错到出片的实操流程

c4d渲染教程新手避坑指南:从报错到出片的实操流程

c4d渲染教程新手避坑指南:从报错到出片的实操流程 复制来的 C4D 工程文件打开就是报错,材质丢失、灯光全黑,新手避坑第一步就是别盲目调参数。很多市政公用工程相关的可视化项目,比如地下管网展示、道路排水模拟,直接拿网上找的“通用场景”硬套…

2026/9/22 2:07:09 阅读更多 →
srt文件怎么打开踩坑实录:源码解析背后的格式真相

srt文件怎么打开踩坑实录:源码解析背后的格式真相

srt文件怎么打开踩坑实录:源码解析背后的格式真相 面试被问原理答不上来,是不是让你瞬间大脑空白? 很多开发者以为srt文件就是个纯文本,用记事本一开就完事了。 直到你在项目里遇到乱码、时间轴错位,才发现 源码解析 才是救命稻草。…

2026/9/22 2:06:09 阅读更多 →

日新闻

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天

3台商务办公笔记本实测:手写实现环境配置,告别卡半天 配置环境就卡半天?别怪机器慢,多半是你没选对工具链。在Java、Go或Python的项目现场, 手写实现…

2026/9/22 0:00:41 阅读更多 →
剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑

剑帝加点速查手册:3分钟搞懂核心逻辑 面试被问原理答不上来,是不是常态?别慌。很多开发者对着 GitHub 开源仓库里的代码发呆,看似简单实则暗藏玄机。今天这份【剑帝加点】速查手册,直接带你拆解核心实现,把面试必考的原理讲透。…

2026/9/22 0:00:41 阅读更多 →
手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优

手写实现图片压缩网站核心:搞定WebP转换与质量调优 复制来的代码跑不通不知道怎么调?别慌,这种“复制粘贴地狱”在开发圈太常见了。尤其是做 图片压缩网站…

2026/9/22 0:00:41 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →