11-基线与预测配置
article
2026年7月31日阅读约 2 分钟305 字
更新于 2026年7月31日
11 基线与预测配置端到端实现任务
执行要求:直接完成基线/预测配置版本、配置项、草稿、校验、发布和停用,验证后交付。配置管理不在同步请求执行基线、训练或预测。
共同门禁:不执行数据库草案,不修改 V1,不 DROP/清库或插入客户测试数据;g5b2-mysql 仅用于 SHOW、SELECT 和 EXPLAIN。接口统一使用 X-Trace-Id,缺失时后端生成并写响应头;同一动作的前端日志、后端日志、错误响应、配置版本和审计必须同值。
1. 目标与完成判定
- 菜单:运维管理 / 基线与预测配置,仅 ROLE_ADMIN。
- 路由:/settings/baseline。
- 列表按状态、指标分页和稳定排序,展示 k、floor、历史窗口、最小有效日、最小训练日、完整率要求、预测 48h、风险观察 12h、连续点、误差阈值、模型类型、版本状态和更新时间。
- 支持创建 DRAFT、校验、发布和停用;发布时原子替代旧 PUBLISHED。
- 管理页默认只展示当前 PUBLISHED 配置并标为“已启用”;SUPERSEDED 仅作为历史版本按需查询,不与生产配置默认混排。
2. 开工前必读与现状核对
- 设置 PowerShell UTF-8,阅读仓库门禁、需求 V2.0 第 5.1/5.2 节、数据库设计第 9.4/9.6/10/12 节和分析配置 DDL。
- 阅读 BaselineConfigPage、types、api/http、PageFeedback、权限处理。
- 阅读 analysis-config Controller/Service/Mapper/XML、DTO、幂等/审计逻辑和测试。
- 用 rg 查找 AnalysisConfig、createAnalysisConfig、updateAnalysisStatus 的全部调用方。
- 当前 GET/POST/validate/publish/disable 已存在;演进现有契约,不另造基线配置和预测配置两套重复版本表。
3. 固定规则与待配置项
| 参数 | 规则 |
|---|---|
| historyWindowDays | 当前需求 30 |
| minValidDays | 至少 14,且不大于历史窗口 |
| minTrainingDays | 至少 30 |
| minCompletenessRate | 当前需求不低于 0.95;应收计划未确认时不据此发布完整率结论 |
| forecastHorizonHours | 固定 48 |
| riskLookaheadHours | 固定 12 |
| warningConsecutivePoints | 固定 2 |
| primary/fallback model | XGBoost / Holt-Winters |
| baselineK、baselineFloor | 按需求 V2.0 第 5.1.1 节的生产启用值整版发布,不能使用前端默认 |
| highRiskConsecutivePoints | 生产启用值固定为 4 |
| maxMae/maxRmse/maxWape | 按需求 V2.0 第 5.1.1 节固化;两个预测目标必须完整配置三项门槛 |
| 配置覆盖 | 每个版本必须完整包含当前发布数据字典中动态方向为 LOW/HIGH 的全部指标,不能用仅含预测 KPI 的版本替代完整基线配置 |
| 预测目标 | 仅无线接通率、无线掉线率生成 48 小时预测;其余已配置指标只用于动态基线或模型特征 |
页面不得提供日/周/月预测周期或多模型并行发布。
4. 后端实施
- GET /api/v1/settings/analysis-configs 支持 status、metricCode、page、size、白名单排序和真实 total。
- POST /api/v1/settings/analysis-configs 使用完整、强类型请求 DTO;校验每个 metricCode 唯一、数值精度、必填和可空待确认项。
- validate 校验指标动态方向、完整指标集合、k/floor、窗口关系、0~1 比例、固定 48/12/2、模型类型和误差阈值;缺少任一 LOW/HIGH 指标时拒绝,不能用页面默认值悄悄修正非法输入。
- publish 在事务中将旧 PUBLISHED 置 SUPERSEDED、新版本置 PUBLISHED,保留 publishedAt/traceId;并发冲突 409。
- disable 不物理删除。停用当前版后基线/预测页面返回 NOT_CONFIGURED 或保留最后成功发布结果并明确其原版本,具体遵循发布规则,不能启动新计算。
- 写操作按 traceId 幂等并审计;发布仅影响后续调度读取,不同步运行 JOB_BASELINE/JOB_PREDICTION。
- 中文日志记录版本、配置项数、状态迁移、校验/失败原因,不记录模型制品或敏感配置。
- 上生产前在唯一当前发布版内固化十项配置;只删除未被基线、预测、模型、统计或发布运行引用的 SUPERSEDED/DISABLED 版本,已有引用的历史版本必须保留追溯。
5. 数据追溯
| 页面字段/动作 | 主要来源 |
|---|---|
| 版本状态和时间 | tb_analysis_config_version |
| 各指标配置项 | tb_analysis_config_item |
| 指标名、单位和动态方向 | tb_metric_definition |
| 后续基线/模型绑定 | tb_baseline_result、tb_model_run、tb_model_version |
| 审计 | tb_audit_log,request_id=traceId |
6. 前端适配
- 根据后端 DTO 补齐表单和列表字段,不再用 unknown body。
- 默认筛选当前 PUBLISHED 并显示“已启用”;新草稿从当前完整版本克隆,避免前端硬编码 k/floor 或遗漏指标。
- 固定参数用只读值或明确输入约束;不提供日/周/月选项。
- 比例输入/展示单位明确,0.95 与 95% 的转换只按契约进行。
- 两个预测目标的误差阈值必须展示生产启用值;其他指标不形成预测发布门禁,空值仍显示“未配置”且不能补 0。
- 筛选、分页、排序真实请求;写操作与刷新复用一个 traceId,处理 403/409。
7. 最小验证门禁
- 后端测试覆盖:角色、完整指标集合、窗口关系、14/30/0.95/48/12/2 边界、k/floor、误差阈值可空、重复指标、状态迁移、并发发布、幂等和审计。
- Mapper 测试核对唯一当前版本、锁和 XML/interface。
- 只读 EXPLAIN 配置列表/count;写测试使用隔离库或事务回滚。
- 真实 HTTP 在安全环境验证成功、400、403、404、409 和 traceId。
- 运行相关 Maven 测试、注解 SQL 禁止扫描和 cd frontend; npm run build。
8. 交付报告
列出修改文件、最终参数契约、状态机、追溯和实际验证结果。明确 k/floor、误差阈值、高风险点数已固化,并单列仍待确认的应收计划完整率口径。