ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OmniRoute技术栈鸟瞰:Next.js+open-sse如何撑起450+贡献者的免费AI网关

OmniRoute技术栈鸟瞰:Next.js+open-sse如何撑起450+贡献者的免费AI网关 OmniRoute技术栈鸟瞰Next.jsopen-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, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 450 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRouteOmniRoute 是一个基于 Next.js 16 与 open-sse 流式路由引擎构建的免费开源 AI 网关单端点聚合 350 供应商、1200 模型并配套管理仪表盘与桌面端。这篇文章带你鸟瞰它的技术栈全景从 Web 框架、数据存储到质量门禁看这套组合如何支撑 450 贡献者的持续协作。完整技术栈一览先给结论OmniRoute 的技术选型非常务实——全部围绕一个 Node.js 进程同时跑 API 网关 Web 仪表盘这个目标展开。关注点选型Web 框架Next.js 16App Routerstandalone 输出UIReact 19 Tailwind CSS 4 Recharts 图表语言TypeScript 6.0ESM 全模块制运行时Node.js ≥22.22.2 或 ≥24数据库SQLitebetter-sqlite3WAL 日志模式桌面端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 等供仪表盘调用仪表盘 UIsrc/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 领域层的可靠状态管理网关的记忆全部落在本地 SQLite95 个数据模块、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, RTKCaveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 450 contributors项目地址: https://gitcode.com/GitHub_Trending/om/OmniRoute创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表