README.md
May 22, 2026 · View on GitHub
中转站的中转站 — 将分散的 AI 中转站聚合为一个统一网关
把你在各处注册的 New API / One API / OneHub / DoneHub / Veloera / AnyRouter / Sub2API 等站点,
汇聚成 一个 API Key、一个入口,自动发现模型、智能路由、成本最优。
🌐 在线体验
无需部署,直接体验 Metapi 的完整功能:
| 🔗体验地址 | metapi-t9od.onrender.com |
| 🔑管理员令牌 | 123456 |
⚠️ 安全提示:体验站为公共环境,请勿填入你的 API Key、账号密码或站点信息。数据随时可能被清空。
ℹ️ 说明:体验站使用 Render 免费方案 + OpenRouter 免费模型(仅
:free后缀的模型可用)。
📖 介绍
现在 AI 生态里有越来越多基于 New API / One API 系列的聚合中转站,要管理多个站点的余额、模型列表和 API 密钥,往往既分散又费时。
Metapi 作为这些中转站之上的元聚合层(Meta-Aggregation Layer),把多个站点统一到 一个入口(可按项目配置多个下游 API Key)——下游所有工具(Cursor、Claude Code、Codex、Open WebUI 等)即可无感接入全部模型。当前支持的上游范围已经不止传统聚合面板,还包括:
- 聚合面板: New API、One API、OneHub、DoneHub、Veloera、AnyRouter、Sub2API
- 通用兼容接口:OpenAI / Claude / Gemini compatible endpoints,以及
cliproxyapi/ CPA - 官方预设:阿里云 / 智谱 / 豆包 Coding Plan,DeepSeek,Moonshot(Kimi),MiniMax,ModelScope
- OAuth 连接:Codex、Claude、Gemini CLI、Antigravity
| 痛点 | Metapi 怎么解决 |
|---|---|
| 🔑 每个站点一个 Key,下游工具配置一堆 | 统一代理入口 + 可选多下游 Key 策略,模型自动聚合到 /v1/* |
| 💸 不知道哪个站点用某个模型最便宜 | 智能路由 自动按成本、余额、使用率选最优通道 |
| 🔄 某个站点挂了,手动切换好麻烦 | 自动故障转移,一个通道失败自动冷却并切到下一个 |
| 📊 余额分散在各处,不知道还剩多少 | 集中看板 一目了然,余额不足自动告警 |
| ✅ 每天得去各站签到领额度 | 自动签到 定时执行,奖励自动追踪 |
| 🤷 不知道哪个站有什么模型 | 自动模型发现,上游新增模型零配置出现在你的模型列表里 |
🖼️ 界面预览
仪表盘 — 余额分布、消费趋势、系统概览
|
模型广场 — 跨站模型覆盖、定价对比、实测指标
|
智能路由 — 多通道概率分配、成本优先选路
|
账号管理 — 多站点多账号、健康状态追踪
|
站点管理 — 上游站点配置与状态一览
|
令牌管理 — API Token 生命周期管理
|
模型操练场 — 在线交互式模型测试
|
签到记录 — 自动签到状态与奖励追踪
|
使用日志 — 代理请求日志与成本明细
|
可用性监控 — 通道健康度实时监测
|
系统设置 — 全局参数与安全配置
|
通知设置 — 多渠道告警与推送配置
|
🏛️ 架构概览
✨ 核心功能
🌐 统一代理网关
- 兼容 OpenAI 与 Claude 下游格式,对接所有主流客户端
- 支持 Responses / Chat Completions / Messages / Completions(Legacy)/ Embeddings / Images / Models,以及标准
/v1/files文件接口 - 完整的 SSE 流式传输支持,自动格式转换(OpenAI ⇄ Claude)
🧠 智能路由引擎
- 自动发现所有上游站点的可用模型,零配置生成路由表
- 四级成本信号:实测成本 → 账号配置成本 → 目录参考价 → 默认兜底
- 多通道概率分摊,基于成本(40%)、余额(30%)、使用率(30%)加权分配
- 失败通道自动冷却与避让(默认 10 分钟冷却期)
- 请求失败自动重试,自动切换其他可用通道
- 路由决策可视化解释,每次选择透明可审计
智能路由配置界面 — 支持精确匹配、通配符、概率分配等多种路由策略
📡 多平台聚合管理
| 平台 | 适配器 | 说明 |
|---|---|---|
| New API | new-api | 新一代大模型网关 |
| One API | one-api | 经典 OpenAI 接口聚合 |
| OneHub | onehub | One API 增强分支 |
| DoneHub | done-hub | OneHub 增强分支 |
| Veloera | veloera | API 网关平台 |
| AnyRouter | anyrouter | 通用路由平台 |
| Sub2API | sub2api | 订阅制中转平台 |
各平台适配器覆盖模型枚举、余额查询、Token 管理、代理接入等通用能力;登录、签到、用户信息等能力按平台而异。
👥 账号与 Token 管理
- 多站点多账号:每个站点可添加多个账号,每个账号可持有多个 API Token
- 健康状态追踪:
healthy/unhealthy/degraded/disabled四级状态机 - 凭证加密存储:所有敏感凭证均加密保存在本地数据库中
- 自动续签:Token 过期时自动重新登录获取新凭证
- 站点联动:禁用站点自动级联禁用所有关联账号
🏪 模型广场
- 跨站点模型覆盖总览:哪些模型可用、多少账号覆盖、各站定价对比
- 延迟、成功率等实测指标展示
- 上游模型目录缓存与品牌分类(OpenAI、Anthropic、Google、DeepSeek 等)
- 交互式模型测试器,在线验证模型可用性
模型广场 — 一站式浏览所有可用模型的覆盖率、定价和性能指标
✅ 自动签到
- Cron 定时执行(默认每日 08:00)
- 智能解析奖励金额,签到失败自动通知
- 按账号启用/禁用控制
- 完整签到日志与历史查询
- 并发锁防止重复签到
💰 余额管理
- 定时余额刷新(默认每小时),批量更新所有活跃账号
- 收入追踪:每日/累计收入与消费趋势分析
- 余额兜底估算:API 不可用时通过代理日志推算余额变动
- 凭证过期自动重新登录
🔔 告警通知
支持五种通知渠道:
| 渠道 | 说明 |
|---|---|
| Webhook | 自定义 HTTP 推送 |
| Bark | iOS 推送通知 |
| Server酱 | 微信通知 |
| Telegram Bot | Telegram 消息通知 |
| SMTP 邮件 | 标准邮件通知 |
告警场景:余额不足预警、站点/账号异常、签到失败、代理请求失败、Token 过期提醒、每日摘要报告。告警冷却机制(默认 300 秒)防止重复通知。
📊 数据看板
- 站点余额饼图、每日消费趋势图
- 全局搜索(站点、账号、模型)
- 系统事件日志、代理请求日志(模型、状态、延迟、Token 用量、成本估算)
数据看板 — 余额分布、消费趋势、系统健康状态一目了然
🎮 模型操练场
- 交互式聊天测试,即时验证模型可用性与响应质量
- 选择任意路由模型,对比不同通道输出
- 流式 / 非流式双模式测试
模型操练场 — 在线交互测试,验证模型可用性与响应质量
📦 轻量部署
- 单 Docker 容器,默认本地数据目录部署,支持外接 MySQL / PostgreSQL 运行时数据库
- Docker 镜像支持
amd64、arm64和armv7l(linux/arm/v7)服务端部署 - 数据完整导入导出,迁移无忧
🚀 快速开始
Docker Compose(推荐)
mkdir metapi && cd metapi
cat > docker-compose.yml << 'EOF'
services:
metapi:
image: 1467078763/metapi:latest
ports:
- "4000:4000"
volumes:
- ./data:/app/data
environment:
AUTH_TOKEN: ${AUTH_TOKEN:?AUTH_TOKEN is required}
PROXY_TOKEN: ${PROXY_TOKEN:?PROXY_TOKEN is required}
CHECKIN_CRON: "0 8 * * *"
BALANCE_REFRESH_CRON: "0 * * * *"
PORT: ${PORT:-4000}
DATA_DIR: /app/data
TZ: ${TZ:-Asia/Shanghai}
restart: unless-stopped
EOF
# 设置 Token 并启动
# AUTH_TOKEN = 管理后台登录令牌(登录时输入此值)
export AUTH_TOKEN=your-admin-token
# PROXY_TOKEN = 下游客户端调用 /v1/* 的 Token
export PROXY_TOKEN=your-proxy-sk-token
docker compose up -d
一行 Docker 命令
docker run -d --name metapi \
-p 4000:4000 \
-e AUTH_TOKEN=your-admin-token \
-e PROXY_TOKEN=your-proxy-sk-token \
-e TZ=Asia/Shanghai \
-v ./data:/app/data \
--restart unless-stopped \
1467078763/metapi:latest
启动后访问 http://localhost:4000,用 AUTH_TOKEN 登录即可。
Note
Docker 镜像支持 amd64、arm64 和 armv7l(linux/arm/v7)服务端部署。
当前 armv7l 支持范围仅限服务端 / Docker 运行,不包含桌面安装包。
Important
请务必修改 AUTH_TOKEN 和 PROXY_TOKEN,不要使用默认值。数据存储在 ./data 目录,升级不会丢失。
Tip
初始管理员令牌即启动时配置的 AUTH_TOKEN。
若在 Compose 外运行且未显式设置 AUTH_TOKEN,默认为 change-me-admin-token(仅用于本地调试)。
桌面安装包首次启动也属于这类场景:如果你没有额外注入 AUTH_TOKEN,默认管理员令牌同样是 change-me-admin-token。
如果在「设置」面板中修改了管理员令牌,后续登录请使用新令牌。
Docker Compose、桌面安装包、反向代理、升级与数据库选项等详见 部署指南。
🏗️ 技术栈
| 层 | 技术 |
|---|---|
| 后端框架 | Fastify — 高性能 Node.js 后端框架 |
| 前端框架 | React 18 + Vite |
| 语言 | TypeScript — 端到端类型安全 |
| 样式 | Tailwind CSS v4 — 原子化样式框架 |
| 数据库 | SQLite / MySQL / PostgreSQL +Drizzle ORM |
| 数据可视化 | VChart (@visactor/react-vchart) |
| 定时任务 | node-cron |
| 容器化 | Docker (Debian slim) + Docker Compose |
| 测试 | Vitest |
🛠️ 本地开发
# 安装依赖
npm install
# 数据库迁移
npm run db:migrate
# 启动开发环境(前后端热更新)
npm run dev
npm run build # 构建前端 + 后端
npm run build:web # 仅构建前端(Vite)
npm run build:server # 仅构建后端(TypeScript)
npm run dist:desktop:mac:intel # 构建 mac Intel (x64) 桌面安装包
npm test # 运行全部测试
npm run test:watch # 监听模式
npm run db:generate # 生成 Drizzle 迁移文件
🔗 相关项目
上游兼容平台
| 项目 | 说明 |
|---|---|
| New API | 新一代大模型网关,Metapi 的主要上游之一 |
| One API | 经典 OpenAI 接口聚合管理 |
| OneHub | One API 增强分支 |
| DoneHub | OneHub 增强分支 |
| Veloera | API 网关平台 |
参考和使用的项目
| 项目 | 说明 |
|---|---|
| All API Hub | 浏览器扩展版 — 一站式管理中转站账号,Metapi 最初灵感来源 |
| LLM Metadata | LLM 模型元数据库,用于模型描述参考 |
| New API | 平台适配器参考实现 |
🔒 数据与隐私
Metapi 完全自托管,所有数据(账号、令牌、路由、日志)均存储在你自己的部署环境中,不会向任何第三方发送数据。代理请求仅在你的服务器与上游站点之间直连传输。
🤝 贡献
欢迎各种形式的贡献!
- 🐛 报告 Bug — 提交 Issue
- 💡 功能建议 — 发起讨论
- 🔧 代码贡献 — 提交 Pull Request
- 📝 贡献指南 — CONTRIBUTING.md
- 📜 行为准则 — CODE_OF_CONDUCT.md
🛡️ 安全
如发现安全问题,请参考 SECURITY.md 使用非公开方式报告。
📜 License
🙏 致谢
感谢所有为 Metapi 提交代码、反馈问题、提供思路和实测数据的朋友。这个项目的很多能力,都是在社区的真实使用和反复打磨中慢慢长出来的。
特别感谢所有贡献者:
⭐ Star History
⭐ 如果 Metapi 对你有帮助,给个 Star 就是最大的支持!
<sub>Built with ❤️ by the AI community</sub>