AutoRouter 是一个 Next.js 16(App Router)全栈应用:前端是一套国际化管理台,后端是一组 Next.js API Routes。它在 /api/proxy/v1/* 暴露一个 OpenAI / Anthropic 兼容的代理入口,把进入的流量按能力路由分发到多个上游,并在这条链路上叠加负载均衡、熔断、配额与并发控制、故障转移、会话亲和与逐请求计费。
一句话:把散落的多家模型上游,收拢成一个可治理、可观测、可计费的统一网关。
|
|
|
|
一次代理请求在网关内的生命周期:
flowchart LR
C(["客户端<br/>API Key"]) --> V{"验证密钥<br/>能力探测"}
V --> R["构建候选上游集<br/>能力匹配 · 授权 · model_redirects"]
R --> LB["负载均衡<br/>优先级 · 权重"]
LB --> CB{"熔断器<br/>CLOSED / OPEN / HALF_OPEN"}
CB -->|"放行"| U[("上游转发<br/>SSE 流式")]
CB -.->|"OPEN / 失败"| FO["故障转移<br/>下一候选"]
FO --> U
U --> B["记录日志 + Token<br/>写入计费快照"]
B --> C
- 能力路由:从请求路径与模型名探测能力(chat / responses / messages 等),解析出对应 provider 与候选上游。
- 准入控制:进入上游前完成并发、配额与队列准入;命中会话亲和时优先复用既选上游。
- 韧性:超时或 5xx 触发故障转移并逐次记录;熔断器按上游维护 CLOSED / OPEN / HALF_OPEN 状态机。
- 计费闭环:成功或失败都落请求日志,成功请求额外合成成本并持久化计费快照。
更完整的请求生命周期、上游模型与熔断细节见文档站 架构介绍。
管理台采用 Ops Console 视觉体系:深色主人格、amber 强调色、终端/运维美学、LED 状态灯与熔断芯片。
| 仪表盘 | 上游管理 |
|---|---|
![]() |
![]() |
| 请求日志 | 密钥管理 |
![]() |
![]() |
Docker Compose 是最省心的启动方式(自带 PostgreSQL 服务):
git clone https://github.com/g1331/AutoRouter.git
cd AutoRouter
cp .env.example .env
# 编辑 .env:至少设置 ADMIN_TOKEN 与 ENCRYPTION_KEY
docker compose up -d
# 默认访问 http://localhost:3331生成
ENCRYPTION_KEY(44 位 base64):node -e "console.log(require('crypto').randomBytes(32).toString('base64'))"
运行要求:Node.js 22+(源码构建场景)、PostgreSQL 16(默认,生产推荐);本地开发可切换 SQLite 沙箱。宿主端口默认 3331 映射到容器内 3000。
更完整的部署形态、版本发布、个人部署 secrets、源码本地开发与 SQLite 切换流程,见文档站 部署指南。
环境变量经 src/lib/utils/config.ts 的 Zod schema 校验。最小可用集:
| 变量 | 必需 | 说明 |
|---|---|---|
DATABASE_URL |
▲ | PostgreSQL 连接串(使用 PG 时必需;未设置则按 SQLite 自动探测) |
ENCRYPTION_KEY |
● | 上游密钥 Fernet 加密根(44 位 base64,32 字节) |
ADMIN_TOKEN |
● | 管理面 API 鉴权令牌 |
DB_TYPE |
postgres | sqlite,未设置时从 DATABASE_URL 自动推断 |
|
JWT_SECRET |
用户登录 JWT 的 HS256 密钥;未设置则从 ENCRYPTION_KEY 经 HKDF 派生 |
|
ALLOW_KEY_REVEAL |
是否允许经 Admin API 明文回显密钥,默认 false |
|
RECORDER_ENABLED |
是否开启流量录制,默认关闭(compose/部署可开启) |
完整清单见 .env.example 与文档站 环境变量参考。
| 主题 | 链接 |
|---|---|
| 部署形态与快速开始 | guide/deployment |
| 环境变量参考 | guide/deployment/env-reference |
| GitHub Actions 部署 | guide/deployment/github-actions |
| 管理后台使用指南 | guide/usage |
| 整体架构与请求生命周期 | guide/architecture |
| 测试策略与贡献规范 | guide/architecture/testing · contributing |
面向贡献者的开发命令、目录结构与协作约定见仓库根目录的 AGENTS.md。
AGPL-3.0 © 2025 AutoRouter Contributors
如果这个项目对你有帮助,欢迎点一个 Star ⭐










