Files
wwjcloud-nest-v1/wwjcloud-nest-v1/docs/V11-AI-READINESS.md

2.6 KiB
Raw Blame History

V11 AI Readiness 事件说明

本文件说明 AI 层Tuner/Safe在 v11 中的就绪事件上报约定,以及与 Boot 层的协作关系。

统一事件

  • 事件名:module.state.changed
  • 载荷:
    • module: 模块名(如 ai.tunerai.safestartupcacheauthrbacqueuelangmetrics
    • previousState: 之前状态(通常为 initializing
    • currentState: 当前状态(readyunavailable
    • meta: 可选扩展(如 { enabled: true }

AI 层模块

ai.tuner

  • 入口:libs/wwjcloud-ai/src/tuner/services/tuner-ready.service.ts
  • 触发时机:OnModuleInit
  • 依赖组件:PerformanceAnalyzerResourceMonitorCacheOptimizerQueryOptimizer
  • 环境开关:AI_TUNER_ENABLED(默认 true
  • 判定逻辑:
    • 当开关启用且核心组件均成功注入 → ready
    • 当开关启用但组件缺失/异常 → unavailable
    • 当开关关闭 → unavailable

ai.safe

  • 入口:libs/wwjcloud-ai/src/safe/services/safe-ready.service.ts
  • 触发时机:OnModuleInit
  • 依赖组件:SecurityAnalyzerVulnerabilityDetectorAccessProtectorAiSecurityService
  • 环境开关:AI_SAFE_ENABLED(默认 true
  • 判定逻辑:
    • 当开关启用且核心组件均成功注入 → ready
    • 当开关启用但组件缺失/异常 → unavailable
    • 当开关关闭 → unavailable

Boot 层(参考)

  • startupStartupValidatorService 在初始化时生成启动报告,并基于 NODE_ENV 是否缺失和 Redis 连接状态上报 ready/unavailable
  • cacheCacheReadyService 在 Redis 禁用时回退为 ready,启用时根据 PING 成功与否上报状态。
  • auth/rbacAuthReadyService 基于 AUTH_ENABLEDRBAC_ENABLED 分别上报 ready/unavailable
  • queueQueueReadyService 依据 QUEUE_ENABLED 与驱动类型(bullmq/kafkaready,未知 → unavailable)。
  • langmetrics:分别在初始化时根据语言目录存在与 PROMETHEUS_ENABLED 开关上报状态。

测试覆盖

  • 位置:src/ai-layer/*.spec.tssrc/boot-layer/*.spec.ts
  • 已覆盖用例:
    • AItuner-ready.servicesafe-ready.service 启用/禁用、缺失组件场景
    • Bootstartupcacheauth/rbacqueue 等常见启用/禁用与依赖失败场景

约定与扩展

  • 所有模块应在 OnModuleInit 或初始化阶段发出首次状态,用于协调器与观测层消费。
  • 新增模块应复用 module.state.changed 事件,保持载荷格式一致性,必要时在 meta 补充上下文。