llm-router

LLM-Router 技术选型

生成时间: 2026-05-11 基于 specs-as-built 工作流,参考 Go 版本并适配 TypeScript/Express 实现

编程语言与运行时

类别 技术 版本 用途
编程语言 TypeScript 5.7+ 主要开发语言,提供类型安全
运行时 Node.js 18+ JavaScript 运行时

核心依赖

类别 技术 版本 用途
HTTP 框架 Express 4.21+ HTTP 服务器与路由
反向代理 http-proxy-middleware TBD 创建反向代理,替代 Go 的 httputil.ReverseProxy
配置校验 Zod 3.24+ 运行时 Schema 校验与类型推断
日志框架 Pino TBD 高性能结构化 JSON 日志(替代 Zap)
环境变量 dotenv 16.4+ 从 .env 文件加载环境变量
YAML 解析 yaml 2.7+ YAML 配置文件解析
JSONC 解析 jsonc-parser 3.3+ 带注释的 JSON 配置文件解析

开发依赖

类别 技术 用途
TypeScript 编译 typescript 5.7+ 类型检查与编译
开发运行 ts-node + nodemon 开发时热重载
类型定义 @types/express, @types/node TypeScript 类型支持
构建 esbuild 高速打包(计划中)
测试 vitest(计划中) 单元测试与集成测试
代码规范 eslint + prettier(计划中) 代码风格与格式化

技术选型理由

Express (替代 Go net/http)

Go 版本使用标准库 net/http + httputil.ReverseProxy,TypeScript 版本选择 Express 作为 HTTP 框架:

http-proxy-middleware (替代 httputil.ReverseProxy)

Pino (替代 Zap)

Go 版本使用 Zap,TypeScript 版本选择 Pino:

Zod (新增)

Go 版本无对应物,TypeScript 版本新增运行时校验:

dotenv (替代 godotenv)

架构模式

模式 Go 实现 TypeScript 实现
HTTP 框架 net/http 标准库 Express + 中间件链
反向代理 httputil.ReverseProxy + 自定义 Director http-proxy-middleware + 自定义路由
请求中间件 手动链式处理 Express 中间件链(auth → cors → route)
配置管理 JSON 文件 + 环境变量 + flag JSON/YAML 文件 + dotenv + Zod 校验
类型系统 Go 结构体 TypeScript 接口 + Zod Schema
日志 Zap 结构化日志 Pino 结构化 JSON 日志
响应录制 自定义 ResponseRecorder http-proxy-middleware 事件钩子 + 自定义响应录制

构建与部署

类别 技术 用途
构建 esbuild 高速 TypeScript 打包
开发 ts-node + nodemon 开发时热重载
包管理 npm 依赖管理
CI/CD GitHub Actions(计划中) 自动测试与发布

安全技术

技术 用途
crypto.randomBytes 生成密码学安全的随机 API 密钥
Bearer Token 认证 客户端请求认证
环境变量隔离 后端 API 密钥不硬编码
.gitignore 排除 config.json 和 .env 防止泄露
Zod Schema 校验 配置输入校验,防止注入
日志脱敏 redactAuthorization() 函数隐藏密钥