Sign inSign up

wyf9661/metapi

By wyf9661

•Updated 1 day ago

MetAPI — AI 中转站元聚合网关:一个 Key 接入全部模型

Image
0

10K+

wyf9661/metapi repository overview

⁠MetAPI

中转站的中转站 — 将分散的 AI 中转站聚合为一个统一网关。

把你在各处注册的 New API / One API / Sub2API 等站点,汇聚成 一个 API Key、一个入口,自动发现模型、智能路由、成本最优。下游所有工具(Cursor、Claude Code、Codex、Open WebUI 等)即可无感接入全部模型。

⁠✨ 核心功能

⁠🌐 统一代理网关
  • 兼容 OpenAI 与 Claude 下游格式,对接所有主流客户端
  • 支持 Responses / Chat Completions / Messages / Completions / Embeddings / Images / Models / Files
  • 完整 SSE 流式传输,自动格式转换(OpenAI ⇄ Claude)
⁠🧠 智能路由引擎
  • 自动发现所有上游站点的可用模型,零配置生成路由表
  • 四级成本信号:实测成本 → 账号配置成本 → 目录参考价 → 默认兜底
  • 多通道概率分摊:成本 40% / 余额 30% / 使用率 30% 加权分配
  • 失败通道按失败类型与连续失败次数分级退避、优先避让(默认上限 1 小时),请求失败自动重试切换
⁠📡 多平台聚合
平台说明
New API新一代大模型网关
One API经典 OpenAI 接口聚合
Sub2API订阅制中转平台
OpenAI 兼容通用 OpenAI 兼容端点
Claude 兼容通用 Anthropic 兼容端点
Gemini 兼容通用 Google 兼容端点
⁠🔗 OAuth 连接
  • Codex — Codex CLI 账号接入
  • Claude — Claude Code 账号接入
  • Gemini CLI — Gemini CLI 接入
  • Antigravity — Antigravity 平台接入
⁠👥 账号与 Token 管理
  • 多站点多账号,每个账号可持多个 API Token
  • 四级健康状态:healthy / unhealthy / degraded / disabled
  • 凭证加密存储,Token 过期自动续签,站点禁用级联账号
⁠🏪 模型广场
  • 跨站模型覆盖总览、定价对比、延迟/成功率实测指标
  • 交互式模型测试器,在线验证模型可用性
⁠✅ 自动签到
  • Cron 定时执行(默认每日 08:00),智能解析奖励金额
  • 签到失败自动通知,并发锁防重复,完整历史日志
⁠💰 余额管理
  • 定时余额刷新(默认每小时),批量更新活跃账号
  • 收入追踪、消费趋势、余额兜底估算、凭证过期自动重登
⁠🔔 告警通知

Webhook · Bark · Server酱 · Telegram Bot · SMTP 邮件,五种渠道。余额不足、站点异常、签到失败、Token 过期、每日摘要均自动推送,告警冷却(默认 300 秒)防重复。

⁠🎮 模型操练场

交互式聊天测试,流式 / 非流式双模式,对比不同通道输出。

⁠📦 其他功能
  • Token 路由 — 灵活的路由分组与策略配置
  • 下游 API Key — 多下游 Key 策略,按项目隔离
  • Cloudflare 隧道 — 内置隧道管理
  • 站点公告 — 上游公告自动聚合展示
  • 更新中心 — 版本检测与更新提示
  • 导入导出 — 完整数据迁移
  • 代理日志 / 探测日志 / 事件日志 — 全链路可观测
⁠📦 轻量部署
  • 单 Docker 容器,数据目录持久化,升级不丢失
  • 支持 amd64 / arm64 / armv7l(linux/arm/v7)
  • 数据库:SQLite(默认)/ MySQL / PostgreSQL

⁠🚀 快速开始(Docker Compose 推荐)

mkdir metapi && cd metapi

cat > docker-compose.yml << 'EOF'
services:
  metapi:
    image: wyf9661/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

export AUTH_TOKEN=your-admin-token   # 管理后台登录令牌
export PROXY_TOKEN=your-proxy-sk-token  # 下游调用 /v1/* 的令牌
docker compose up -d

启动后访问 http://localhost:4000,用 AUTH_TOKEN 登录。

⁠一行命令
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 \
  wyf9661/metapi:latest

⁠🔧 环境变量

变量说明
AUTH_TOKEN管理后台登录令牌(必填)
PROXY_TOKEN下游代理令牌,调用 /v1/*(必填)
PORT服务端口,默认 4000
CHECKIN_CRON自动签到 cron,默认 0 8 * * *
BALANCE_REFRESH_CRON余额刷新 cron,默认 0 * * * *
DATA_DIR数据目录,默认 /app/data
TZ时区,默认 Asia/Shanghai
NOTIFY_COOLDOWN_SEC告警冷却秒数,默认 300
ADMIN_IP_ALLOWLIST管理后台 IP 白名单
TELEGRAM_ENABLEDTelegram 通知开关
TELEGRAM_BOT_TOKENTelegram Bot Token
TELEGRAM_CHAT_IDTelegram 通知目标 Chat ID

Important

生产部署请务必修改 `AUTH_TOKEN` 与 `PROXY_TOKEN`,不要使用默认值。 数据保存在 `/app/data`,升级不会丢失。

⁠🏗️ 技术栈

Fastify · React 18 · TypeScript · Tailwind CSS v4 · Drizzle ORM · VChart · node-cron · Vitest · SQLite / MySQL / PostgreSQL

⁠📚 链接

Tag summary

Content type

Image

Digest

sha256:44ee6793b…

Size

176.2 MB

Last updated

1 day ago

docker pull wyf9661/metapi