去年我在 GitHub Trending 上刷到这个项目,star 2 万多。点进去看了一下,README 第一句话就是“OpenAI 接口管理 & 分发系统”。我当时正被几个 API key 搞得焦头烂额——DeepSeek 的、Qwen 的、OpenAI 的,每个格式都不一样,切来切去烦死了。
装上一试,挺好用。后来推荐给几个做 AI 工具的朋友,反馈都不错。这篇写一下我的真实使用感受,包括它好在哪、哪里还差点意思。
它做了什么
一句话:把你的各种 AI API 变成一套 OpenAI 兼容的接口。
用 one-api 之前:
你的应用
├── 调 DeepSeek → 用 DeepSeek 自己的 SDK
├── 调 Qwen → 用 DashScope SDK
├── 调 OpenAI → 用 OpenAI SDK
└── 调 Claude → 用 Anthropic SDK
用 one-api 之后:
你的应用 → one-api(:3000/v1) → 自动路由到对应模型
你的代码只需要改一行 base_url,模型名字从 deepseek-chat 换成 qwen-plus 就切换了。
支持哪些模型
官方列了 20 多个,我实际用过的有这些:
| 厂商 | 模型 | 我用来做什么 |
|---|---|---|
| DeepSeek | V3、R1 | 日常对话、代码生成 |
| OpenAI | GPT-4o、GPT‑4 | 需要最高质量的时候 |
| Qwen/通义千问 | Qwen-Plus、Qwen-Max | 中文内容、长文本翻译 |
| Zhipu/智谱 | GLM‑4 | 中文任务,备用 |
| Anthropic | Claude 3.5 Sonnet | 长文档分析 |
| Moonshot/Kimi | moonshot-v1 | 超长上下文任务 |
还支持抖音豆包、百度文心、Ollama 本地模型等等。基本你能叫出名字的都接进去了。
几个我用得最多的功能
多 Key 轮询 & 负载均衡
这功能救过我一次。我的 DeepSeek 账户有个单独的 key 触发了限流,但 one-api 自动把流量切到了备用的 key 上,用户那边完全没感觉。
设置很简单:同一个渠道加多个 key,one-api 自动轮询。谁挂了、谁限流了,它会暂时踢掉,恢复了再加回来。
用量统计
给每个朋友发独立的 token,月底看一眼就知道谁用得多。有一次我发现有个 token 的调用量翻了 10 倍,一问才知道他在跑批量的数据清洗任务。要是没统计面板,我可能一直不知道。
价格设置
可以在后台给每个渠道设倍率。比如 DeepSeek 设 1,OpenAI 设 3,这样用户能感知到成本差异。想赚点差价也可以在倍率上加一点,但我不建议加太多,核心价值还是省钱。
安装(比你想的简单)
docker run -d --name one-api --restart always \
-p 3000:3000 \
-v ./data:/data \
justsong/one-api
一行命令。不需要 MySQL,不需要配置环境变量。它自带 SQLite,开箱即用。
两个我不满意的地方
说实话,没有什么工具是完美的:
- 错误信息不太友好 — 上游 API 挂了的时候,one-api 返回的错误有时候是英文技术栈,普通用户看不懂。我一般自己套一层错误处理
- Web 面板有点重 — 首页加载要 1–2 秒,里面塞了很多图表。日常用还行,手机浏览器打开就有点吃力
总体来说瑕不掩瑜,免费开源的东西做到这个程度已经很良心了。
跟竞品比
| one-api | LiteLLM | 自己写转发 | |
|---|---|---|---|
| 安装难度 | 一行 docker | 需要 Python 环境 | 看你水平 |
| Web 面板 | ✅ | ❌(开源版没有) | 看你写不写 |
| 多 key 轮询 | ✅ | ✅ | 要自己实现 |
| 开源协议 | MIT | MIT | 你的 |
| 适合谁 | 想省事的 | 想高度定制的 | 想练手的 |
我自己一开始写转发脚本,写完第一个月能用,第二个月发现没做限流,第三个月发现没做统计,第四个月发现没做 key 管理……最后还是用回 one-api。
值不值得装?
如果你只有一台机器、一个 key、自己用——不需要,直接调 DeepSeek API 就行。
如果你有多个人、多个模型、或者想把 API 转卖给别人——装一个,能省大量折腾时间。