AI 应用主线项目
储能电站设备智能监控平台
小型 AIOps 风格平台:数据接入 → 实时看板 → 告警流转 → AI 解读与自然语言查数端到端闭环。
- 角色
- 独立设计开发
- 周期
- 2026.07 - 至今
- 状态
- M1 数据底座+看板+告警、M2 AI 层已完成(130 项测试全绿),M3 部署推进中
FastAPISQLiteReact 18TypeScriptEChartsSSEDocker Compose
背景与问题
市面上看板项目大多是「图表 Demo」,这个项目做的是面向储能电站场景的设备监控平台:48 台设备(电池簇/PCS/传感器)从数据接入、时序存储降采样、实时看板、告警规则引擎到 AI 层全链路,AI 不是贴在看板上的按钮,而是贯穿「日报—告警根因—自然语言查数」的完整层。
我的角色
独立完成架构设计、前后端开发、测试体系;采用多 AI Agent 并行协作开发(先写 API 契约文档做对齐依据,前端/后端/AI 层按契约并行开发,本人负责任务拆解、契约设计、代码审查与集成验收)。
架构示意
React 18 + ECharts 看板(三视图 · AI 助手 · 规则管理 · 双主题)
SSE 实时推送(telemetry / alarm · 断线重连降级轮询)
FastAPI(ingest 幂等协议 · 告警引擎 · webhook/SMTP 通知)
时序三级降采样(原始→5m→1h · 水位线增量聚合 + 脏桶重算)
AI 层:数据压缩管道 → 日报 / 根因假设 / NL2Query 白名单 DSL
技术方案
- 时序存储三级降采样(7天/90天/2年),水位线增量聚合 + 乱序数据脏桶重算,查询按跨度自动选粒度
- 告警规则引擎:阈值持续超限/波动率/离线 + z-score/IQR 异常检测,生命周期流转(触发→认领→处理→解决/误报)
- 数据压缩管道:原始时序压缩为结构化摘要 JSON 注入 prompt,token 预算估算 + 超限逐级裁剪
- NL2Query 只生成白名单 DSL(pydantic 严格校验)再映射参数化 SQL,用户输入永不进 SQL 字符串
- 故事线注入:一条命令注入渐进异常(含历史重写),演示随时有剧情可讲
核心难点与取舍
故事线历史重写与告警窗口的一致性:回填/实时/重写三种写入的采样网格不对齐,幂等覆盖清不掉错开时间戳的旧点,残留数据会打断「持续超限」告警判定。解法是重写前先清除时间窗旧点并登记脏桶重算聚合,保持原始→聚合→告警全链路一致。
成果指标
130 项
前后端测试全绿
48 台
三类设备全链路模拟
10 问
NL2Query 回归用例集
成果
- docker compose 一键起全套 + 演示脚本注入剧情,2 分钟内从温度爬升到告警触发到 AI 根因分析全流程可演示
- AI 输出全部强制标注「假设/建议」属性,LLM 未配置时系统其余功能不受影响