llm-router

数据模型模块 (004) 功能规格

模块路径: src/types/ + src/config/schema.ts 生成时间: 2026-05-11

概述

数据模型模块定义了系统核心的 TypeScript 类型和 Zod Schema,是配置验证和类型安全的基础。使用 Zod Schema 作为唯一数据来源,TypeScript 类型通过 z.infer 自动推断。

功能需求

FR-MDL-001: Config Schema 定义

FR-MDL-002: BackendConfig Schema 定义

FR-MDL-003: TypeScript 类型推断

FR-MDL-004: 配置验证

FR-MDL-005: 序列化/反序列化

核心类型定义

Config

// 从 Zod Schema 推断的基础类型
type BaseConfig = z.infer<typeof ConfigSchema>;

// 运行时扩展
interface Config extends BaseConfig {
  llmrouterApiKey: string;
  useGeneratedKey: boolean;
  logger: Logger;
}

BackendConfig

type BackendConfig = z.infer<typeof BackendConfigSchema>;

ChatCompletionRequest

interface ChatMessage {
  role: 'system' | 'user' | 'assistant' | 'developer' | string;
  content: string | null;
}

interface ChatCompletionRequest {
  model: string;
  messages: ChatMessage[];
  stream?: boolean;
  temperature?: number;
  max_tokens?: number;
  [key: string]: unknown;
}

与 Go 版本对照

Go 类型 TypeScript 类型 说明
Config struct Config interface (Zod 推断 + 扩展) 新增运行时字段
BackendConfig struct BackendConfig type (Zod 推断) Zod Schema 驱动
struct tags Zod Schema 运行时验证 + 类型推断
json.Unmarshal jsonc-parser / yaml 多格式解析
Zod Schema 验证 新增:运行时安全保障