docker部署One API

📅 2026/7/11 7:52:09 👁️ 阅读次数 📝 编程学习
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-4deepseek-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 难道就只能用官方原价?

不是。

真正聪明的方式,是把"便宜"和"安全"两件事拆开:

  1. 去官方买你需要的最便宜的渠道
  2. 用 One API 把它们统一起来
  3. 中间不再有第三个人

15 分钟,一行命令,换来的是完全掌控的 API 网关。这笔账,你自己算。