2.6 KiB
2.6 KiB
V11 AI Readiness 事件说明
本文件说明 AI 层(Tuner/Safe)在 v11 中的就绪事件上报约定,以及与 Boot 层的协作关系。
统一事件
- 事件名:
module.state.changed - 载荷:
module: 模块名(如ai.tuner、ai.safe、startup、cache、auth、rbac、queue、lang、metrics)previousState: 之前状态(通常为initializing)currentState: 当前状态(ready或unavailable)meta: 可选扩展(如{ enabled: true })
AI 层模块
ai.tuner
- 入口:
libs/wwjcloud-ai/src/tuner/services/tuner-ready.service.ts - 触发时机:
OnModuleInit - 依赖组件:
PerformanceAnalyzer、ResourceMonitor、CacheOptimizer、QueryOptimizer - 环境开关:
AI_TUNER_ENABLED(默认true) - 判定逻辑:
- 当开关启用且核心组件均成功注入 →
ready - 当开关启用但组件缺失/异常 →
unavailable - 当开关关闭 →
unavailable
- 当开关启用且核心组件均成功注入 →
ai.safe
- 入口:
libs/wwjcloud-ai/src/safe/services/safe-ready.service.ts - 触发时机:
OnModuleInit - 依赖组件:
SecurityAnalyzer、VulnerabilityDetector、AccessProtector、AiSecurityService - 环境开关:
AI_SAFE_ENABLED(默认true) - 判定逻辑:
- 当开关启用且核心组件均成功注入 →
ready - 当开关启用但组件缺失/异常 →
unavailable - 当开关关闭 →
unavailable
- 当开关启用且核心组件均成功注入 →
Boot 层(参考)
startup:StartupValidatorService在初始化时生成启动报告,并基于NODE_ENV是否缺失和Redis连接状态上报ready/unavailable。cache:CacheReadyService在 Redis 禁用时回退为ready,启用时根据PING成功与否上报状态。auth/rbac:AuthReadyService基于AUTH_ENABLED与RBAC_ENABLED分别上报ready/unavailable。queue:QueueReadyService依据QUEUE_ENABLED与驱动类型(bullmq/kafka→ready,未知 →unavailable)。lang、metrics:分别在初始化时根据语言目录存在与PROMETHEUS_ENABLED开关上报状态。
测试覆盖
- 位置:
src/ai-layer/*.spec.ts、src/boot-layer/*.spec.ts - 已覆盖用例:
- AI:
tuner-ready.service、safe-ready.service启用/禁用、缺失组件场景 - Boot:
startup、cache、auth/rbac、queue等常见启用/禁用与依赖失败场景
- AI:
约定与扩展
- 所有模块应在
OnModuleInit或初始化阶段发出首次状态,用于协调器与观测层消费。 - 新增模块应复用
module.state.changed事件,保持载荷格式一致性,必要时在meta补充上下文。