Skip to content

模型类型定义

概述

本文档定义了TaskFlow AI中AI模型相关的所有类型,包括模型定义、处理选项、结果类型等。

🤖 AI模型核心类型

AIModel - AI模型定义

typescript
interface AIModel extends BaseEntity {
  // 基本信息
  id: ID
  name: string
  provider: ModelProvider
  version?: string
  description?: string
  
  // 连接信息
  endpoint: string
  apiKey: string
  headers?: Record<string, string>
  
  // 能力描述
  capabilities: ModelCapability[]
  supportedTasks: string[]
  languages: string[]
  
  // 限制和配额
  limits: ModelLimits
  
  // 定价信息
  pricing?: ModelPricing
  
  // 状态信息
  status: ModelStatus
  currentLoad: number
  lastHealthCheck: Timestamp
  
  // 配置参数
  defaultParams: ModelParameters
  
  // 性能指标
  performance: ModelPerformance
}

// 模型提供商
enum ModelProvider {
  DEEPSEEK = 'deepseek',
  ZHIPU = 'zhipu',
  QWEN = 'qwen',
  BAIDU = 'baidu',
  OPENAI = 'openai',
  ANTHROPIC = 'anthropic',
  CUSTOM = 'custom'
}

// 模型能力
enum ModelCapability {
  TEXT_GENERATION = 'text-generation',
  CODE_ANALYSIS = 'code-analysis',
  REASONING = 'reasoning',
  CHINESE_UNDERSTANDING = 'chinese-understanding',
  ENGLISH_UNDERSTANDING = 'english-understanding',
  MULTIMODAL = 'multimodal',
  FUNCTION_CALLING = 'function-calling',
  JSON_MODE = 'json-mode'
}

// 模型状态
enum ModelStatus {
  ACTIVE = 'active',
  INACTIVE = 'inactive',
  MAINTENANCE = 'maintenance',
  ERROR = 'error',
  DEPRECATED = 'deprecated'
}

📊 模型性能类型

ModelPerformance - 模型性能

typescript
interface ModelPerformance {
  // 响应时间指标
  responseTime: ResponseTimeMetrics
  
  // 质量指标
  quality: QualityMetrics
  
  // 可靠性指标
  reliability: ReliabilityMetrics
  
  // 成本指标
  cost: CostMetrics
  
  // 使用统计
  usage: UsageMetrics
}

// 响应时间指标
interface ResponseTimeMetrics {
  average: number
  median: number
  p95: number
  p99: number
  min: number
  max: number
  lastUpdated: Timestamp
}

// 质量指标
interface QualityMetrics {
  accuracy: number
  relevance: number
  completeness: number
  consistency: number
  confidence: number
  userRating: number
  lastEvaluated: Timestamp
}

// 可靠性指标
interface ReliabilityMetrics {
  uptime: number
  successRate: number
  errorRate: number
  timeoutRate: number
  retryRate: number
  lastIncident?: Timestamp
}

// 成本指标
interface CostMetrics {
  costPerRequest: number
  costPerToken: number
  totalCost: number
  costEfficiency: number
  budgetUtilization: number
  period: TimePeriod
}

// 使用统计
interface UsageMetrics {
  totalRequests: number
  totalTokens: number
  activeUsers: number
  requestsPerDay: number
  tokensPerDay: number
  peakUsage: number
  period: TimePeriod
}

🔧 处理选项类型

ProcessingOptions - 处理选项

typescript
interface ProcessingOptions {
  // 任务类型
  task: ProcessingTask
  
  // 模型选择
  preferredModel?: string
  fallbackModels?: string[]
  multiModel?: boolean
  models?: string[]
  
  // 处理参数
  parameters?: ModelParameters
  
  // 质量控制
  qualityControl?: QualityControlOptions
  
  // 缓存控制
  cache?: CacheOptions
  
  // 回调函数
  callbacks?: ProcessingCallbacks
  
  // 元数据
  metadata?: Record<string, any>
}

// 处理任务类型
enum ProcessingTask {
  PRD_ANALYSIS = 'prd-analysis',
  TASK_GENERATION = 'task-generation',
  CODE_ANALYSIS = 'code-analysis',
  BUSINESS_ANALYSIS = 'business-analysis',
  REQUIREMENT_EXTRACTION = 'requirement-extraction',
  DEPENDENCY_ANALYSIS = 'dependency-analysis',
  PRIORITY_ASSESSMENT = 'priority-assessment'
}

// 质量控制选项
interface QualityControlOptions {
  compareResults?: boolean
  minConfidence?: number
  maxRetries?: number
  validationRules?: ValidationRule[]
  qualityThreshold?: number
}

// 缓存选项
interface CacheOptions {
  useCache?: boolean
  cacheKey?: string
  cacheTTL?: number
  cacheStrategy?: 'aggressive' | 'conservative' | 'disabled'
}

// 处理回调
interface ProcessingCallbacks {
  onProgress?: (progress: ProcessingProgress) => void
  onModelSelected?: (modelId: string) => void
  onError?: (error: ProcessingError) => void
  onComplete?: (result: ProcessingResult) => void
}

📈 处理结果类型

ProcessingResult - 处理结果

typescript
interface ProcessingResult {
  // 基本结果
  success: boolean
  content: string
  
  // 模型信息
  modelUsed: string
  modelsAttempted: string[]
  
  // 性能指标
  processingTime: number
  tokenUsage: TokenUsage
  
  // 质量指标
  confidence: number
  quality: QualityMetrics
  
  // 成本信息
  cost: CostBreakdown
  
  // 元数据
  metadata: ProcessingMetadata
  
  // 错误信息
  errors?: ProcessingError[]
  warnings?: ProcessingWarning[]
  
  // 对比结果(多模型时)
  comparisons?: ModelComparison[]
}

// Token使用情况
interface TokenUsage {
  input: number
  output: number
  total: number
  cached?: number
}

// 成本分解
interface CostBreakdown {
  amount: number
  currency: string
  inputCost: number
  outputCost: number
  fixedCost?: number
  breakdown: CostItem[]
}

// 成本项目
interface CostItem {
  type: 'input_tokens' | 'output_tokens' | 'request' | 'cache'
  quantity: number
  unitPrice: number
  amount: number
}

// 处理元数据
interface ProcessingMetadata {
  requestId: string
  timestamp: Timestamp
  version: string
  environment: Environment
  userAgent?: string
  sessionId?: string
}

// 模型对比结果
interface ModelComparison {
  modelId: string
  confidence: number
  quality: number
  responseTime: number
  cost: number
  selected: boolean
  reason?: string
}

🚨 错误和警告类型

ProcessingError - 处理错误

typescript
interface ProcessingError extends BaseError {
  // 错误分类
  category: ProcessingErrorCategory
  
  // 模型相关
  modelId?: string
  
  // 重试信息
  retryable: boolean
  retryCount: number
  
  // 恢复建议
  recovery?: RecoveryAction[]
}

// 处理错误类别
enum ProcessingErrorCategory {
  MODEL_ERROR = 'model_error',
  NETWORK_ERROR = 'network_error',
  TIMEOUT_ERROR = 'timeout_error',
  QUOTA_ERROR = 'quota_error',
  VALIDATION_ERROR = 'validation_error',
  PARSING_ERROR = 'parsing_error'
}

// 恢复动作
interface RecoveryAction {
  type: 'retry' | 'fallback' | 'manual' | 'ignore'
  description: string
  parameters?: Record<string, any>
}

// 处理警告
interface ProcessingWarning {
  type: 'quality' | 'performance' | 'cost' | 'compatibility'
  message: string
  severity: 'low' | 'medium' | 'high'
  suggestion?: string
}

🔄 模型编排类型

ModelOrchestration - 模型编排

typescript
interface ModelOrchestration {
  // 选择策略
  selectionStrategy: ModelSelectionStrategy
  
  // 负载均衡
  loadBalancing: LoadBalancingConfig
  
  // 故障转移
  failover: FailoverConfig
  
  // 性能优化
  optimization: OptimizationConfig
}

// 负载均衡配置
interface LoadBalancingConfig {
  enabled: boolean
  algorithm: 'round_robin' | 'weighted' | 'least_connections' | 'response_time'
  weights?: Record<string, number>
  healthCheck: boolean
}

// 故障转移配置
interface FailoverConfig {
  enabled: boolean
  maxRetries: number
  retryDelay: number
  fallbackModels: string[]
  circuitBreaker: CircuitBreakerConfig
}

// 断路器配置
interface CircuitBreakerConfig {
  enabled: boolean
  failureThreshold: number
  recoveryTimeout: number
  halfOpenMaxCalls: number
}

// 优化配置
interface OptimizationConfig {
  caching: boolean
  batching: boolean
  compression: boolean
  parallelization: boolean
  adaptiveTimeout: boolean
}

📊 模型监控类型

ModelMonitoring - 模型监控

typescript
interface ModelMonitoring {
  // 健康检查
  healthCheck: HealthCheckConfig
  
  // 性能监控
  performanceMonitoring: PerformanceMonitoringConfig
  
  // 使用监控
  usageMonitoring: UsageMonitoringConfig
  
  // 告警配置
  alerting: AlertingConfig
}

// 健康检查配置
interface HealthCheckConfig {
  enabled: boolean
  interval: number
  timeout: number
  retries: number
  endpoints: HealthCheckEndpoint[]
}

// 健康检查端点
interface HealthCheckEndpoint {
  name: string
  url: string
  method: HttpMethod
  expectedStatus: number
  timeout: number
}

// 性能监控配置
interface PerformanceMonitoringConfig {
  enabled: boolean
  metrics: PerformanceMetric[]
  samplingRate: number
  aggregationWindow: number
  retention: number
}

// 性能指标
enum PerformanceMetric {
  RESPONSE_TIME = 'response_time',
  THROUGHPUT = 'throughput',
  ERROR_RATE = 'error_rate',
  TOKEN_RATE = 'token_rate',
  COST_RATE = 'cost_rate',
  QUALITY_SCORE = 'quality_score'
}

// 使用监控配置
interface UsageMonitoringConfig {
  enabled: boolean
  trackUsers: boolean
  trackSessions: boolean
  trackCosts: boolean
  aggregationLevel: 'request' | 'session' | 'user' | 'day'
}

// 告警配置
interface AlertingConfig {
  enabled: boolean
  rules: AlertRule[]
  channels: AlertChannel[]
  escalation: EscalationPolicy[]
}

// 告警规则
interface AlertRule {
  id: ID
  name: string
  metric: PerformanceMetric
  condition: AlertCondition
  threshold: number
  duration: number
  severity: 'low' | 'medium' | 'high' | 'critical'
}

// 告警条件
enum AlertCondition {
  GREATER_THAN = 'greater_than',
  LESS_THAN = 'less_than',
  EQUALS = 'equals',
  NOT_EQUALS = 'not_equals',
  CHANGE_RATE = 'change_rate'
}

// 告警渠道
interface AlertChannel {
  type: 'email' | 'slack' | 'webhook' | 'sms'
  config: Record<string, any>
  enabled: boolean
}

// 升级策略
interface EscalationPolicy {
  level: number
  delay: number
  channels: string[]
  conditions: string[]
}

🧪 模型测试类型

ModelTesting - 模型测试

typescript
interface ModelTesting {
  // 基准测试
  benchmark: BenchmarkConfig
  
  // A/B测试
  abTesting: ABTestConfig
  
  // 回归测试
  regressionTesting: RegressionTestConfig
  
  // 性能测试
  performanceTesting: PerformanceTestConfig
}

// 基准测试配置
interface BenchmarkConfig {
  enabled: boolean
  testSuites: TestSuite[]
  baseline: string
  metrics: BenchmarkMetric[]
  schedule: ScheduleConfig
}

// 测试套件
interface TestSuite {
  name: string
  description: string
  testCases: TestCase[]
  expectedResults: ExpectedResult[]
}

// 基准测试指标
enum BenchmarkMetric {
  ACCURACY = 'accuracy',
  RESPONSE_TIME = 'response_time',
  THROUGHPUT = 'throughput',
  COST_EFFICIENCY = 'cost_efficiency',
  QUALITY_SCORE = 'quality_score'
}

// A/B测试配置
interface ABTestConfig {
  enabled: boolean
  experiments: ABExperiment[]
  trafficSplit: TrafficSplit
  duration: number
  successMetrics: string[]
}

// A/B实验
interface ABExperiment {
  id: ID
  name: string
  description: string
  controlModel: string
  treatmentModel: string
  hypothesis: string
  status: ExperimentStatus
}

// 实验状态
enum ExperimentStatus {
  DRAFT = 'draft',
  RUNNING = 'running',
  PAUSED = 'paused',
  COMPLETED = 'completed',
  CANCELLED = 'cancelled'
}

// 流量分配
interface TrafficSplit {
  control: number
  treatment: number
  rampUp?: RampUpConfig
}

// 渐进式发布配置
interface RampUpConfig {
  enabled: boolean
  initialPercentage: number
  incrementPercentage: number
  incrementInterval: number
  maxPercentage: number
}

📚 相关文档

Released under the MIT License.