用one-api搭建API中转站——统一管理你的所有AI接口
看到这里,阿伟先来预测一下,你现在的状态大概是这样的:
部署了LobeChat,里面填了OpenAI的Key。搭了Dify,里面又填了通义千问的Key。你自己写代码调API,又用了一个DeepSeek的Key。手机上还有个ChatBox,填的是智谱的Key。
四五个API Key散落在四个地方。哪个用了多少Token?不知道。哪个快超额了?不知道。想给朋友共享一个模型,又怕他用爆你的额度?
所以你需要一个中控台。
把所有模型的API集中到一个入口,统一管理、统一计费、统一限额。这就是API中转站。
one-api 还是 New API?
one-api是老牌项目,功能稳定,社区大。但界面比较朴素,更新也慢了。
New API是one-api的增强分支(fork),界面好看得多,功能也更多——支持按量计费、倍率设置、令牌分组、模型映射等。对个人用户来说,最实用的是它能在一个界面里看到每个渠道的用量统计。
这篇我们用New API(大家会发现现在市面上很多中转商用的都是这个,下图可以看看,这十二十几个有十几个用的都是这个,由此可见。。。)。
如果你用原版one-api,流程也差不多,界面略有不同。
第一步:Docker部署
一条命令:
dockerrun-d\--namenew-api\--restartalways\-p3000:3000\-v/home/new-api/data:/data\-eTZ=Asia/Shanghai\calciumion/new-api:latest等几秒拉完镜像,容器就起来了。
但等一下——你第9篇的LobeChat可能也用了3000端口,第10篇的Dify也是3000。端口冲突了。改一下:
dockerrun-d\--namenew-api\--restartalways\-p3001:3000\-v/home/new-api/data:/data\-eTZ=Asia/Shanghai\calciumion/new-api:latest用3001端口对外,容器内还是3000。
Nginx反代:
nano/etc/nginx/conf.d/api.confserver { listen 80; server_name api.你的域名.com; location / { proxy_pass http://127.0.0.1:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }nginx-t&&nginx-sreload certbot--nginx-dapi.你的域名.com访问https://api.你的域名.com,第一次会让你设管理员账号密码。
第二步:添加渠道
渠道就是你的API来源。你有几个模型的API Key,就加几个渠道。
渠道 → 添加新渠道:
渠道1:OpenAI
- 类型:OpenAI
- 名称:随便起,比如"OpenAI官方"
- 密钥:sk-你的OpenAI Key
- 模型:勾选gpt-4o、gpt-4o-mini等你有的
- 代理:如果直连官方留空,如果用中转就填中转地址
渠道2:DeepSeek
- 类型:DeepSeek
- 名称:DeepSeek
- 密钥:你的DeepSeek Key
- 模型:deepseek-chat、deepseek-reasoner
渠道3:通义千问
- 类型:通义千问
- 名称:通义千问
- 密钥:你的阿里云百炼Key
- 模型:qwen-turbo、qwen-plus、qwen-max
渠道4:智谱
- 类型:智谱GLM
- 名称:智谱
- 密钥:你的智谱Key
- 模型:glm-4、glm-4-flash
每个渠道加完点"测试",确认能通。测试通过说明API Key有效、网络没问题。
第三步:创建令牌
令牌是你给应用或人发放的"通行证"。每个令牌可以独立设置额度、可用模型、有效期。
令牌 → 添加令牌:
令牌1:自己用
- 名称:我的令牌
- 额度:不限量(或者设个大数)
- 可用模型:全部
令牌2:给朋友
- 名称:老王的令牌
- 额度:50万Token(用完就停)
- 有效期:30天
- 可用模型:只勾便宜的(gpt-4o-mini、deepseek-chat、glm-4-flash)
令牌3:给Dify用
- 名称:Dify专用
- 额度:100万Token
- 可用模型:对话模型+Embedding模型
这样每个令牌各管各的。朋友用超了不影响你,Dify跑飞了也不会吃掉你所有的额度。
第四步:负载均衡(一个模型配多个Key)
这是API中转站最值钱的功能。
假设你有3个OpenAI账号(3个Key),都想用来跑gpt-4o。在one-api里加3个渠道,模型都选gpt-4o。然后:
New API会自动轮询这3个渠道。第一个请求走渠道1,第二个走渠道2,第三个走渠道3。一个Key被限流了,自动切到下一个。你完全不用管。
对于免费额度有限的国产模型这个功能特别有用。通义千问每个账号有免费额度,你注册几个账号全加上,免费额度叠加起来够日常用了。
第五步:模型映射——省钱的核心操作
这个功能理解了能省不少钱。
假设你在LobeChat里习惯用gpt-4o,但gpt-4o贵。你可以设一个模型映射:
- 用户请求gpt-4o → 实际路由到deepseek-chat
效果:你的应用以为在用gpt-4o,实际上跑的是DeepSeek。输出质量差不了太多,但成本降了10倍。
在渠道设置里可以配:
- 原始模型:gpt-4o
- 映射模型:deepseek-chat
不是所有场景都适合这么干。需要深度推理的任务还是用原版gpt-4o,日常聊天用DeepSeek就够了。你可以配多个渠道,贵的和便宜的都加上,让New API自己选。
第六步:把所有东西串起来
现在你有了API中转站,把前面的LobeChat和Dify都接上来。
LobeChat接入中转站:
修改LobeChat的docker配置,把API地址指向你的中转站:
environment:-ACCESS_CODE=你的访问密码-OPENAI_API_KEY=你在New API里创建的令牌-OPENAI_PROXY_URL=https://api.你的域名.com/v1重启LobeChat:
dockercompose up-d现在LobeChat所有的API请求都经过你的中转站。换模型、查用量、设限额,全在New API后台操作,不用再改LobeChat的配置。
Dify接入中转站:
Dify的模型供应商配置里,选OpenAI兼容模式:
- API地址:
https://api.你的域名.com/v1 - API Key:你在New API里给Dify创建的令牌
这样Dify也走中转站了。你可以在New API后台看到Dify用了多少Token,花了多少钱。
最终架构:
你的所有应用(LobeChat / Dify / ChatBox / 自己的程序) ↓ 全部指向 API中转站(New API) ↓ 统一调度 OpenAI / DeepSeek / 通义 / 智谱 / ...一个入口管所有模型。加新模型?在中转站加个渠道就行,所有应用自动可用。砍掉某个模型?禁用渠道,所有应用自动不走它。不用一个一个应用去改配置。
省钱实操
说几个真能省钱的操作:
1. 便宜模型兜底
日常对话用DeepSeek或GLM-4-Flash,百万Token才几块钱。只有需要复杂推理时才用gpt-4o。在New API里给令牌设可用模型时,默认只开放便宜的,贵的单独开个令牌按需用。
2. 免费额度叠加
通义千问、智谱、月之暗面都有免费额度。注册几个账号全加成渠道,New API自动轮询,免费额度叠加。轻度使用的话,一个月几乎不花钱。
3. 设限额防爆
给每个令牌设月度Token上限。特别是给别人的令牌,一定要限额。不然某人一晚上跑个循环调用,你第二天起来账单傻眼。
4. 看用量统计调整
New API后台有用量统计,按渠道、按模型、按令牌都能看。发现某个模型用得特别多但效果和便宜模型差不多,直接切过去。
安全提醒
API中转站 = 你所有AI API Key的集合。它被攻破 = 你所有Key泄露。
几个必须做的:
- 关闭注册:New API后台 → 设置 → 禁止注册。别让外人注册账号。
- HTTPS:certbot证书必须配上,别用HTTP明文传API Key。
- IP白名单:如果你只用几个固定IP访问,在Nginx里加白名单。
- 强密码:管理员密码别用简单密码。
- 定期查日志:New API有操作日志,偶尔看看有没有异常请求。
走到这里,你已经从零搭起了一整套基础设施,我们只聊自己用,无商用哈,如需商用可自行探索。
这条路走通了,后面怎么扩展都是你自己的事。加新模型、加新应用、给团队开账号、做API服务卖给别人——地基打好,上面盖什么都行。