OctaFuse Gateway:统一管理 Coding Plan/Token Plan 的开源 AI 网关,个人 SaaS 都能用
标签: OctaFuse / AI 网关 / 开源 / LLM 管理 / 多模型路由 / SaaS / 计费审计 / Provider Key 池
原文: 微信公众号「TJ君」https://mp.weixin.qq.com/s/kA-n6V3DDX4AuRMuXt4fug
GitHub: https://github.com/OctaFuse/octafuse-gateway
官网: https://octafuse.dev
一句话定位
OctaFuse Gateway 是一个开源 AI 网关,把一堆 Provider、模型路由、API Key、用户、预算、用量审计、财务记账和管理后台放在一起。个人用可以把 Coding Plan/Token Plan 统一成一套入口;做 SaaS 可以把它变成产品里的 LLM 服务底座。
痛点:模型越多,入口越散
典型场景:
- 一堆 base URL
- 一堆 API Key
- 一堆模型名
- 一堆套餐额度
- 一堆客户端配置
Cursor 要配一次,脚本要配一次,内部工具也要配一次。某个 Key 快用完了,得去对应平台查;想切换模型,还要重新改 base URL、API Key 和模型名。
真正麻烦的不是没有模型可用,而是入口太散。
OctaFuse Gateway 是什么
采用 Proxy + Admin + Core 结构:
| 模块 | 作用 |
|---|---|
| Proxy | 对外提供 OpenAI / Anthropic / Gemini 兼容推理入口 |
| Admin | 管理后台 + /api/admin/* 自动化管理接口 |
| Core | 共享类型、数据库迁移、存储层和跨数据库实现 |
两种部署方式
| 部署方式 | 适合场景 |
|---|---|
| Cloudflare Worker + Pages + D1 | 低运维,边缘部署 |
| Docker / Node + Postgres 或 MySQL | 自托管,已有服务器和数据库 |
核心能力
1. 多协议入口
不只服务 OpenAI-compatible 客户端:
| 接口 | 对应协议 |
|---|---|
/v1/chat/completions | OpenAI 兼容 |
/v1/messages | Anthropic 兼容 |
/v1beta/* | Gemini 兼容 |
2. 路由:把「模型选择」从客户端里拿出来
把 fast-coder 做成一条 route,客户端只认这个 route,背后具体走哪个 Provider、哪个上游模型、哪个 API Key,由 Gateway 决定。
后续可以在 Gateway 里:
- 给不同场景配置不同 route
- 把便宜模型用于普通任务
- 把强模型留给复杂任务
- 按 route group 区分免费/默认/付费/内部使用
- 上游不可用时做 failover
- Provider 价格或质量变化时,调整路由而不是改业务
3. Provider Key 池(v1.4.0 关键能力)
给同一个 Provider 配多条上游 Key,设置:
- label:标记用途
- status:启用/禁用
- weight:加权随机
- priority:优先级
Proxy 层按 priority 分批 failover,同一批里按 weighted-random 选择;近期失败的 Key 进入内存 cooldown,默认 60 秒内跳过。
4. 用户、Key、审计、记账:SaaS 最需要的四件事
| 需求 | OctaFuse 方案 |
|---|---|
| 用户管理 | 区分不同用户/团队/租户,谁创建 Key、谁在调用、谁消耗额度都能对上 |
| Key 管理 | 给租户/服务端模块发 Gateway Key,不直接暴露上游 Provider Key |
| 审计 | 追踪:哪位用户、哪个 Key、哪个 route、哪个 Provider、什么时间、调用了什么模型、结果是否成功 |
| 财务记账 | 三层成本口径:metered_cost(实际计量成本)、standard_cost(标准目录成本)、charged_cost(对用户收取的成本) |
5. Admin 后台
自带 Admin 应用,目前已有:
- Provider 管理
- Model 管理
- Route 管理
- 用户和 API Key 管理
- 请求日志
- 用量分析
- 可靠性摘要
- Playground(测试路由连通性)
- Simulator(模拟 OpenAI/Anthropic/Gemini 调用,检查鉴权、路由、计费和日志)
- 飞书/企业微信错误告警配置
个人场景:一套 base URL 和 API Key 管全部
使用前:
Cursor 配一次 Key → 脚本配一次 Key → 内部工具配一次 Key
某个 Key 快用完 → 去对应平台查 → 想换模型 → 重新改配置
使用后:
统一 Base URL → OctaFuse Gateway
统一 API Key → OctaFuse 里的用户 Key
模型名 → Gateway 里的 route
客户端侧保持简单,后续切换 Provider 只需在 Gateway 后台改路由,不用到处改客户端配置。
SaaS 场景:把 LLM 接入做成基础设施
没有网关时,业务系统要自己处理:
| 问题 | 业务系统自己做会怎样 |
|---|---|
| Gateway Key | 自己设计创建、吊销、权限和归属 |
| 用量统计 | 自己记录 token、模型、成本、用户 |
| 预算限制 | 自己做额度、周期重置和超额拦截 |
| 审计追踪 | 自己查每次调用是谁发起、走了哪里 |
| 财务记账 | 自己区分成本价、目录价、用户收费价 |
| 模型切换 | 自己改配置、迁移、灰度 |
| 上游故障 | 自己做 fallback、告警和排查 |
有 OctaFuse Gateway 后:
SaaS 业务系统
负责用户体验、业务权限、业务数据、AI 功能流程
OctaFuse Gateway
负责模型 Provider、route、用户 Key、用量、审计、计费口径
上游模型 / Coding Plan / Token Plan
负责真正的模型推理能力
业务系统不需要直接感知所有模型供应商,只需通过 Admin API 把用户、租户、Key、套餐、额度等信息和 Gateway 对齐。
成本三层口径
| 成本口径 | 含义 |
|---|---|
| metered_cost | 实际计量成本(上游采购成本) |
| standard_cost | 标准目录成本(产品展示给用户的价格) |
| charged_cost | 对用户或业务侧收取的成本(最终收费) |
这三件事可能不是同一个数字——可以把「上游采购成本」和「产品商业定价」分开处理。
快速上手
Docker quickstart
docker compose -f docker/compose/quickstart.yml up --build
curl -sS http://localhost:8787/health
健康后默认地址:
| 服务 | 地址 |
|---|---|
| Proxy | http://localhost:8787 |
| Admin | http://localhost:8789 |
Admin 默认登录:admin / changeme(生产环境必须修改)
调用示例
curl -sS http://localhost:8787/v1/chat/completions \
-H "Authorization: Bearer sk-..." \
-H "Content-Type: application/json" \
-d '{"model":"your-route-model","messages":[{"role":"user","content":"Hello"}]}'
Cloudflare 本地 D1
npm install
npm run db:migrate
npm run dev:proxy
# 另开终端
npm run dev:admin
Proxy 默认在 127.0.0.1:8787,Admin 默认在 127.0.0.1:8789。
注意事项
- 它是基础设施,不是免配置工具 — 需要理解 Provider、Model、Route、Key、预算、数据库迁移等概念
- 默认账号和密钥一定要改 —
admin/changeme和MASTER_KEY在任何共享环境和生产环境都必须轮换 - 适合多模型/多 Key/多客户端场景 — 只调用一个模型的小脚本可能没必要部署网关
适合谁
| 场景 | 为什么适合 |
|---|---|
| 买了多套 Coding Plan/Token Plan 的个人用户 | 统一 base URL、Key、route 和用量入口 |
| 经常切换模型的开发者 | 在 Gateway 里调整 route,减少客户端重复配置 |
| 内部 AI 平台 | 统一管理 Provider、Key、预算、审计和告警 |
| 正在做 AI SaaS 的团队 | 把 LLM 接入、计费、审计从业务系统里拆出来 |
| 多租户产品 | 用户、Key、预算和调用日志天然需要集中管理 |
| 只调用一个模型的小脚本 | 可能没必要,部署网关会显得重 |
总结
过去看 AI 网关更多关注支持多少模型、能不能 OpenAI-compatible。但现在真正重要的是:
LLM 能力越来越像一项基础设施,而不是某个业务函数里的几行 HTTP 请求。
- 🔌 多协议入口:OpenAI / Anthropic / Gemini 兼容
- 🛤️ 路由抽离:模型选择从客户端配置里抽出来,Gateway 统一调度
- 🔑 Provider Key 池:多套 Coding Plan/Token Plan 统一调度,failover + 加权随机
- 📊 三层成本口径:metered_cost / standard_cost / charged_cost
- 🖥️ Admin 后台:Playground + Simulator + 飞书/企微告警
- 🏗️ SaaS 分工:业务系统专注产品,LLM 接入/路由/计费/审计交给 Gateway
如果你已经开始被各种模型套餐、API Key、客户端配置和用量账单折磨,这个项目值得试一下。
相关链接
- GitHub: https://github.com/OctaFuse/octafuse-gateway
- 官网: https://octafuse.dev
- 原文: https://mp.weixin.qq.com/s/kA-n6V3DDX4AuRMuXt4fug
Keywords: OctaFuse, AI 网关, 开源, LLM 管理, 多模型路由, SaaS, 计费审计, Provider Key 池, OpenAI 兼容, Anthropic 兼容, Gemini 兼容, Cloudflare Worker, Docker