模块路径:
src/config/生成时间: 2026-05-11
配置模块负责加载和管理应用程序的所有配置,支持 JSON、JSONC 和 YAML 格式的配置文件,环境变量加载,命令行参数覆盖,以及 Zod Schema 运行时验证。
.json → JSONC, .yaml/.yml → YAML)--config 指定,默认 config.json.env 文件中的环境变量--config <path> 配置文件路径--port <number> 监听端口--llmrouter-api-key <key> 直接指定 API 密钥--log-level <level> 日志级别.default() 定义配置值的优先级从高到低:
LLM-Router 自身 API 密钥的获取优先级:
--llmrouter-api-keyllmrouter_api_key 字段(支持直接值或 ${env:VAR_NAME} 语法)rsk_ 前缀密钥(48 个随机字符)llmrouter_api_key(空字符串)warn${env:VAR_NAME} 语法,在运行时被替换为对应环境变量的值llmrouter_api_key 和后端 api_key${env:${env:OTHER}} 语法loadConfig(options: LoadConfigOptions): Promise<Config>加载并验证配置:解析命令行 → 加载 .env → 读取配置文件 → Zod 验证 → 应用覆盖 → 确定 API 密钥
validateConfig(raw: unknown): Config使用 Zod Schema 验证原始配置数据。验证失败时抛出 ZodError。
| 错误场景 | 处理方式 |
|---|---|
| 配置文件不存在 | 使用默认配置继续运行 |
| 配置文件格式错误 | 输出解析错误信息,进程退出 |
| Zod 验证失败 | 输出详细验证错误,进程退出 |
| API 密钥获取失败 | 自动生成随机密钥并打印 |
| Go 版本 | TypeScript 版本 | 说明 |
|---|---|---|
config.LoadConfig() |
loadConfig() |
功能对等 |
flag.Parse() |
commander | CLI 参数解析 |
json.Unmarshal() |
jsonc-parser / yaml | 多格式支持 |
| 无 | Zod Schema 验证 | 新增:运行时类型安全 |
godotenv.Load() |
dotenv.config() | .env 加载 |