docker部署One API
这是一篇关于如何自建One API网关的完整指南。我会从一个痛点场景切入,带出中转站的潜在风险,再手把手教你怎么用官方渠道自建一个属于自己的稳定、安全的网关服务。
不靠中转站、不被人卡 key、不被换模型——用一个开源工具,把你手里所有 AI 平台的 API 整合到一个统一入口,自己掌控全部流量。
这个工具叫One API。
⚠️重要澄清:One API 本身不提供任何 token。它只是个工具,你需要自己去各平台买 key 灌进去。这才是合法、可控的"自建中转"。
PART 01 One API 到底是什么?
先把概念搞清楚,再决定要不要装。
用一句话讲——One API 是一个开源的 “AI API 网关”。
你把 OpenAI、Claude、Gemini、DeepSeek、通义千问等等所有平台的 key 塞进去,它对外只暴露一个统一的 OpenAI 格式接口。
作者是songquanpeng,GitHub 上31k+ star,国内 AI 圈基本上见到的中转站都是基于它二次开发的。
它能解决三个核心痛点
痛点 1:多个 key 散落各处
OpenAI 一个、Claude 一个、火山方舟一个、阿里百炼一个……配置散在十几个项目里。
痛点 2:切换模型要改代码
每家 SDK 都不一样,从 GPT 切到 Claude 需要重写一遍调用逻辑。
痛点 3:成本和用量看不清
十几个平台账单分别算,一个月花了多少 token 心里没数。
装上 One API 之后——
所有调用都长这样:
POST https://你的域名/v1/chat/completions Authorization: Bearer sk-xxx{"model":"gpt-4o",...}把model换成claude-opus-4或deepseek-chat,后端自动路由。代码一行不用改。
PART 02 自己搭 vs 中转站,到底差在哪?
| 维度 | 中转站 | 自建 One API |
|---|---|---|
| 模型来源 | 对方说啥就是啥 | 你自己选官方 |
| 跑路风险 | 高(号池随时崩) | 零 |
| 数据隐私 | Prompt 全被记录 | 仅你能访问 |
| 价格 | 看似便宜,实际算汇率后未必 | 官方原价 |
| 部署难度 | 零 | 15 分钟 |
| 月成本(个人) | 看用量 | 0–5 美元服务器费 |
对个人开发者来说,结论很清楚:
如果你已经有 OpenAI / Claude / 国产平台的官方 key,One API 就是把它们装进同一个壳子的最佳工具——没有差价,没有跑路,没有数据风险。
PART 03 15分钟搭起来 · Docker 一行命令
最简方案,适合 95% 的人。
准备:一台能上网的 Linux 服务器(阿里云 / 腾讯云 / 自己的 NAS / 树莓派都行),最低配置 1 核 1G。
在终端执行下面这一条命令:
dockerrun--nameone-api-d\--restartalways\-p3000:3000\-eTZ=Asia/Shanghai\-v/home/ubuntu/data/one-api:/data\registry.cn-hangzhou.aliyuncs.com/qiluo-images/one-api就这。
浏览器打开http://你的服务器IP:3000——
- 初始账号:root
- 初始密码:123456
⚠️登录后第一件事必须改密码。
PART 04 三步上手:渠道 → 令牌 → 调用
One API 的核心心智模型非常简洁。登录后台,左侧菜单只看三个:渠道、令牌、日志。其他先不管。
第一步:配置"渠道"(Channel)
渠道 = 你买的官方 key 的来源。OpenAI 是一个渠道,Claude 是一个渠道,DeepSeek 是一个渠道。
点添加渠道→ 选类型(OpenAI / Anthropic / 百度文心千帆等)→ 把官方 key 粘进去 → 选支持的模型 → 保存。
第二步:创建"令牌"(Token)
令牌 = 你给自己应用调用 One API 用的 key。可以设置额度、过期时间、IP 白名单。
点添加令牌→ 设额度(建议先设 $10 试水)→ 复制生成的sk-xxx。
第三步:代码里替换 Base URL
把原来代码里的https://api.openai.com改成https://你的域名/v1,把 key 换成上一步的令牌。完事。代码主体不动。
举个 Python 调用的例子:
fromopenaiimportOpenAI client=OpenAI(api_key="sk-你的令牌",# 令牌base_url="https://你的域名/v1"# One API 地址)resp=client.chat.completions.create(model="claude-opus-4",# ← 改这里就能切模型messages=[{"role":"user","content":"你好"}])无论你切到 GPT、Claude、DeepSeek、Gemini,这段代码完全不变,只改model字段。
PART 05 三个隐藏技巧,新手九成不知道
真正让 One API 变好用的细节。
① 多 key 负载均衡
同一个渠道里能填多个 key(每行一个),One API 会自动轮询。某个 key 被限流,自动切下一个。中小团队薅免费额度的神技。
② 模型映射(Model Mapping)
把gpt-4o偷偷映射到deepseek-chat。老应用一行不改,后端模型已经被换了——这也是"套壳"的原理。
③ 分组定价 + 兑换码
如果你想给团队成员或朋友分发 key,可以按用户分组定不同倍率,还能批量生成兑换码。
⚠️注意:对外提供生成式服务在国内需要备案,仅限内部使用。
PART 06 几个真实踩过的坑
坑 1:别用 SQLite 跑生产
默认 SQLite 单文件,并发稍高就锁库。有点流量就上 MySQL,加个SQL_DSN环境变量就行。
-eSQL_DSN="root:password@tcp(host:3306)/oneapi"坑 2:root 密码必改
默认root / 123456是公开的,全网扫描器满天飞。不改 = 把你的所有 key 拱手送人。
坑 3:只开 3000 端口给信任 IP
公网直接暴露 3000 端口很危险。最好挂 Nginx 反向代理,加 HTTPS。
坑 4:日志会爆磁盘
所有请求都会记日志,定期清理或单独配置日志存储。
坑 5:别对外卖 token
国内法规要求生成式 AI 服务必须备案。自用、团队内部用没问题,公开收钱卖 = 你就成了中转站。
回到最初的问题——
便宜得离谱的中转站不能碰,那 AI Token 难道就只能用官方原价?
不是。
真正聪明的方式,是把"便宜"和"安全"两件事拆开:
- 去官方买你需要的最便宜的渠道
- 用 One API 把它们统一起来
- 中间不再有第三个人
15 分钟,一行命令,换来的是完全掌控的 API 网关。这笔账,你自己算。
