韦建生
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
docker-compose 一键起全套 · 模拟器与真实设备走同一 ingest 协议

技术方案

  • 时序存储三级降采样(7天/90天/2年),水位线增量聚合 + 乱序数据脏桶重算,查询按跨度自动选粒度
  • 告警规则引擎:阈值持续超限/波动率/离线 + z-score/IQR 异常检测,生命周期流转(触发→认领→处理→解决/误报)
  • 数据压缩管道:原始时序压缩为结构化摘要 JSON 注入 prompt,token 预算估算 + 超限逐级裁剪
  • NL2Query 只生成白名单 DSL(pydantic 严格校验)再映射参数化 SQL,用户输入永不进 SQL 字符串
  • 故事线注入:一条命令注入渐进异常(含历史重写),演示随时有剧情可讲

核心难点与取舍

故事线历史重写与告警窗口的一致性:回填/实时/重写三种写入的采样网格不对齐,幂等覆盖清不掉错开时间戳的旧点,残留数据会打断「持续超限」告警判定。解法是重写前先清除时间窗旧点并登记脏桶重算聚合,保持原始→聚合→告警全链路一致。

成果指标

130 项

前后端测试全绿

48 台

三类设备全链路模拟

10 问

NL2Query 回归用例集

成果

  • docker compose 一键起全套 + 演示脚本注入剧情,2 分钟内从温度爬升到告警触发到 AI 根因分析全流程可演示
  • AI 输出全部强制标注「假设/建议」属性,LLM 未配置时系统其余功能不受影响