one-api: The Open-Source AI API Gateway Every Developer Should Know

去年我在 GitHub Trend­ing 上刷到这个项目,star 2 万多。点进去看了一下,README 第一句话就是“OpenAI 接口管理 & 分发系统”。我当时正被几个 API key 搞得焦头烂额——DeepSeek 的、Qwen 的、OpenAI 的,每个格式都不一样,切来切去烦死了。

装上一试,挺好用。后来推荐给几个做 AI 工具的朋友,反馈都不错。这篇写一下我的真实使用感受,包括它好在哪、哪里还差点意思。

它做了什么

一句话:把你的各种 AI API 变成一套 Ope­nAI 兼容的接口。

用 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 日常对话、代码生成
Ope­nAI GPT-4o、GPT‑4 需要最高质量的时候
Qwen/通义千问 Qwen-Plus、Qwen-Max 中文内容、长文本翻译
Zhipu/智谱 GLM‑4 中文任务,备用
Anthrop­ic Claude 3.5 Son­net 长文档分析
Moonshot/Kimi moon­shot-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,开箱即用。

两个我不满意的地方

说实话,没有什么工具是完美的:

  1. 错误信息不太友好 — 上游 API 挂了的时候,one-api 返回的错误有时候是英文技术栈,普通用户看不懂。我一般自己套一层错误处理
  2. Web 面板有点重 — 首页加载要 1–2 秒,里面塞了很多图表。日常用还行,手机浏览器打开就有点吃力

总体来说瑕不掩瑜,免费开源的东西做到这个程度已经很良心了。

跟竞品比

one-api LiteLLM 自己写转发
安装难度 一行 dock­er 需要 Python 环境 看你水平
Web 面板 ❌(开源版没有) 看你写不写
多 key 轮询 要自己实现
开源协议 MIT MIT 你的
适合谁 想省事的 想高度定制的 想练手的

我自己一开始写转发脚本,写完第一个月能用,第二个月发现没做限流,第三个月发现没做统计,第四个月发现没做 key 管理……最后还是用回 one-api。

值不值得装?

如果你只有一台机器、一个 key、自己用——不需要,直接调 DeepSeek API 就行。

如果你有多个人、多个模型、或者想把 API 转卖给别人——装一个,能省大量折腾时间。

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top