llm-router

LLM-Router 整体规格文档

生成时间: 2026-05-11 | 基于 Go 参考项目规格适配 TypeScript/Express 实现 版本: 0.1.0 (TypeScript/Express 重实现)

1. 概述

LLM-Router 是一个基于 TypeScript/Express 的反向代理服务器,用于将 OpenAI 兼容的 chat/completions API 请求根据模型前缀路由到不同的 LLM 后端(OpenAI、Groq、Ollama、DeepSeek 等)。它解决了各类 AI 工具/IDE 无法同时配置多个 LLM 提供商的限制。

本项目是 Go 版本 llm-router 的 TypeScript 重写,保持功能对等,利用 Node.js/Express 生态提供更灵活的部署方式。

2. 功能需求

FR-01: 多后端路由

实现: src/handler/chatHandler.ts, src/proxy/index.ts

FR-02: 模型别名

实现: src/middleware/request-preprocessor.ts

FR-03: 角色重写

实现: src/middleware/request-preprocessor.ts

FR-04: 不支持参数过滤

实现: src/middleware/request-preprocessor.ts

FR-05: 客户端认证

实现: src/middleware/auth.ts

FR-06: 后端认证代理

实现: src/proxy/director.ts

FR-07: 自动 API 密钥生成

实现: src/utils/keygen.ts, src/config/index.ts

FR-08: CORS 支持

实现: src/middleware/cors.ts

FR-09: 流式响应支持

实现: src/handler/chatHandler.ts, src/proxy/index.ts

FR-10: 配置管理

实现: src/config/index.ts, src/config/schema.ts

FR-11: 结构化日志

实现: src/logger/index.ts, src/utils/redact.ts

FR-12: 响应录制

实现: src/utils/stream.ts

FR-13: 类型安全配置

实现: src/config/schema.ts, src/types/index.ts

3. 非功能需求

NFR-01: 性能

NFR-02: 可靠性

NFR-03: 可观测性

NFR-04: 安全性

NFR-05: 兼容性

NFR-06: 类型安全