OmniRoute技术栈鸟瞰:Next.js+open-sse如何撑起450+贡献者的免费AI网关
【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 350 providers (90+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 450+ contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute
OmniRoute 是一个基于 Next.js 16 与 open-sse 流式路由引擎构建的免费开源 AI 网关,单端点聚合 350+ 供应商、1200+ 模型,并配套管理仪表盘与桌面端。这篇文章带你鸟瞰它的技术栈全景:从 Web 框架、数据存储到质量门禁,看这套组合如何支撑 450+ 贡献者的持续协作。
完整技术栈一览
先给结论:OmniRoute 的技术选型非常"务实"——全部围绕"一个 Node.js 进程同时跑 API 网关 + Web 仪表盘"这个目标展开。
| 关注点 | 选型 |
|---|---|
| Web 框架 | Next.js 16(App Router,standalone 输出) |
| UI | React 19 + Tailwind CSS 4 + Recharts 图表 |
| 语言 | TypeScript 6.0+(ESM 全模块制) |
| 运行时 | Node.js ≥22.22.2 或 ≥24 |
| 数据库 | SQLite(better-sqlite3,WAL 日志模式) |
| 桌面端 | Electron 41 + electron-builder |
| 测试 | Node 原生 test runner + Vitest + Playwright |
| 构建 | Next.js standalone,脚本 scripts/build/build-next-isolated.mjs |
官方文档 docs/architecture/CODEBASE_DOCUMENTATION.md 中有最权威的完整版本,建议对照阅读。
第一层:Next.js 16 如何当 AI 网关的底座
很多人以为 Next.js 只能做网站,但 OmniRoute 把它用成了"网关 + 后台 + 前端"三合一:
- API 网关层:
src/app/api/v1/下是 OpenAI 兼容的公开接口(chat、completions、embeddings、images、audio 等约 25 个子路由),Claude Code、Codex、Cursor、Cline、Copilot 只需把 base URL 指向这里; - 管理 API 层:
src/app/api/下还有约 60 个管理目录(providers、combos、settings、mcp、a2a、resilience 等),供仪表盘调用; - 仪表盘 UI:
src/app/(dashboard)/dashboard/下有约 35 个页面,覆盖供应商管理、Combo 回退链、用量分析、健康状态等; - 无全局中间件:拦截逻辑按路由逐个做,配合
src/server/authz/的 classify → policies → enforce 三级授权管道,鉴权链路清晰可控。
关键入口文件包括:
- 兼容接口总入口:
src/sse/handlers/chat.ts - 管理 API 与页面:
src/app/api/、src/app/(dashboard)/dashboard/ - 授权管道:
src/server/authz/ - Next.js 构建配置:
next.config.mjs
这套结构的妙处在于:API 与仪表盘共享同一进程、同一数据库,没有额外部署组件,一条命令即可跑起来。
第二层:open-sse 流式路由引擎
如果说 Next.js 是"门面",那么 open-sse 工作区就是整个 AI 网关的心脏。它是一个独立的 npm workspace(包名 @omniroute/open-sse),目录分工非常明确:
| 目录 | 职责 |
|---|---|
| open-sse/config/ | 340+ 个供应商配置与模型目录 |
| open-sse/executors/ | 178 个供应商执行器(OAuth/API Key 各家协议) |
| open-sse/handlers/ | 160 个处理器:chat、embeddings、imageGeneration 等 |
| open-sse/translator/ | 请求/响应格式翻译,统一各供应商协议差异 |
| open-sse/services/ | 账号选择、限流、熔断、压缩、会话等 600+ 业务模块 |
| open-sse/mcp-server/ | 内嵌 MCP 服务器 |
请求的完整链路是:Next.js 路由接收请求 →open-sse/handlers/chatCore.ts编排 → translator 把 OpenAI 格式翻译成目标供应商格式 → 对应 executor 发请求 → 以 SSE 流式回传并实时翻译回来,期间穿插配额预检、账号回退、熔断与用量统计。总出口定义在 open-sse/index.ts 中,翻译器注册、格式检测、Token 刷新、账号回退等能力都从这里导出。
第三层:SQLite + 领域层的可靠状态管理
网关的"记忆"全部落在本地 SQLite(95+ 个数据模块、148 个迁移文件,位于src/lib/db/)。在此之上,src/domain/是一层纯领域逻辑:策略引擎(policyEngine)、回退策略(fallbackPolicy)、成本规则(costRules)、锁定策略(lockoutPolicy)、Combo 解析器(comboResolver)。把策略从流程代码中剥离,让"锁定期 → 预算 → 回退"的决策可以独立测试,这也是 450+ 贡献者敢放心改动路由逻辑的原因。
质量门禁:多贡献者协作的秘密武器
一个 450+ 贡献者参与的仓库,最怕的是"改一处坏十处"。OmniRoute 的答案是 scripts/check/ 下的 70+ 个自动化检查脚本 + config/quality/ 下的质量基线,典型包括:
- 循环依赖检查:check-cycles.mjs、check-circular-deps.mjs
- 文件大小与重复度基线:check-file-size.mjs、check-duplication.mjs
- 文档一致性:check-docs-sync.mjs、check-openapi-routes.mjs(保证文档、OpenAPI 规范与代码同步)
- 复杂度棘轮:只许降不许升,防止代码腐化
- 测试发现与变更测试策略:check-test-discovery.mjs、check-pr-test-policy.mjs
配合 Husky 的 pre-commit 钩子(ESLint + Prettier),这些门禁在每次提交时自动生效。协作细节可参考 CONTRIBUTING.md 与 docs/architecture/QUALITY_GATES.md。
快速上手:三步跑起来
git clone https://gitcode.com/GitHub_Trending/om/OmniRoute cd OmniRoute npm install && npm run dev启动后 API 与仪表盘共用端口20128,默认数据目录为~/.omniroute/。在仪表盘的 Providers 页面添加供应商(支持 22 个 OAuth 模块一键登录),再到 Combos 页面配置回退链,即可让 Claude Code 等工具通过单端点访问全部模型。
关键资料索引
| 资料 | 路径 |
|---|---|
| 架构总览 | docs/architecture/ARCHITECTURE.md |
| 技术栈与目录说明 | docs/architecture/CODEBASE_DOCUMENTATION.md |
| 仓库目录地图 | docs/architecture/REPOSITORY_MAP.md |
| 路由引擎出口 | open-sse/index.ts |
| 核心编排逻辑 | open-sse/handlers/chatCore.ts |
| 质量门禁文档 | docs/architecture/QUALITY_GATES.md |
| 贡献指南 | CONTRIBUTING.md |
小结
OmniRoute 的技术栈并不追求新潮:Next.js 16 一人分饰 API、仪表盘与 CLI 三役,open-sse 用 178 个执行器 + 翻译器撑起多供应商路由,SQLite 领域层保证状态可靠,70+ 质量门禁脚本托住大规模协作。想深入某一块,从 docs/architecture/ 目录切入是最短路径。
【免费下载链接】OmniRouteNever stop coding. Free MIT AI gateway: one endpoint, 350 providers (90+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 450+ contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考