Files
iot-device-management-service/.trae/documents/plan_20260202_013208.md
16337 baa895a6f1 feat: 初始化告警平台后端项目
- 创建 FastAPI 项目结构
- 实现告警数据模型(SQLAlchemy)
- 实现 multipart/form-data 告警接收接口
- 实现阿里云 OSS 图片上传模块
- 实现告警查询和处理 API
- 实现异步大模型分析模块
2026-02-02 09:40:02 +08:00

3.9 KiB
Raw Blame History

AI 告警平台开发计划

项目定位

职责:仅接收边缘端告警、保存告警证据、提供可视化与人工处理能力
不负责:设备管理、推理逻辑、用户体系(复用芋道前端用户体系)


一、边缘端 → 告警平台 数据协议

传输方式multipart/form-dataJSON + 图片文件)

JSON 字段

{
  "camera_id": "cam-001",
  "roi_id": "roi-01", 
  "alert_type": "leave_post",
  "algorithm": "LeavePostAlgorithm",
  "confidence": 0.85,
  "duration_minutes": 5,
  "trigger_time": "2024-01-20T10:30:00Z",
  "message": "离岗告警"
}

图片字段snapshot(二进制文件)


二、后端架构FastAPI

alert_platform/
├── app/
│   ├── main.py              # FastAPI 入口
│   ├── config.py            # 配置SQLite + 图片存储路径)
│   ├── models.py            # SQLAlchemy 告警模型
│   ├── schemas.py           # Pydantic 请求/响应模型
│   ├── api/
│   │   └── alert.py         # 告警接收 & 查询接口
│   ├── service/
│   │   ├── alert_service.py # 告警业务逻辑
│   │   └── analyzer.py      # 异步大模型分析
│   └── storage.py           # 图片存储
├── data/                    # SQLite + 图片目录
├── requirements.txt
└── Dockerfile

核心接口

方法 路径 描述
POST /api/v1/alerts 接收边缘端告警multipart/form-data
GET /api/v1/alerts 查询告警列表(分页 + 筛选)
GET /api/v1/alerts/{id} 告警详情
PUT /api/v1/alerts/{id}/handle 处理告警(确认/忽略/备注)
GET /api/v1/alerts/{id}/image 获取告警图片
GET /api/v1/alerts/statistics 告警统计

三、前端架构(芋道 UI

在 yudao-ui-admin-vben 中新增模块

apps/web-antd/src/
├── api/alert/
│   └── alert.ts             # 告警 API
├── views/alert/
│   ├── list/
│   │   ├── data.ts          # 列表表单/列配置
│   │   └── index.vue        # 告警列表页
│   └── detail/
│       ├── data.ts
│       └── index.vue        # 告警详情页
└── router/routes/modules/
    └── alert.ts             # 告警路由

前端功能

  • 告警列表:时间/类型/状态筛选 + 分页
  • 告警详情:图片展示 + 算法信息 + 离岗时长
  • 人工处理:确认、忽略、备注操作
  • 大模型分析结果展示(可选)

四、大模型分析(异步)

流程

  1. 告警写入数据库后,触发异步任务
  2. 任务队列发送图片 + 上下文到大模型服务
  3. 大模型返回:风险等级、告警描述、误报建议
  4. 结果写入告警记录的 ai_analysis 扩展字段

实现方式Python asyncio 或 Celery预留


五、技术栈

层级 技术
后端框架 FastAPI + Uvicorn
数据库 SQLite轻量或 MySQL
图片存储 本地文件系统 / 对象存储
前端框架 Vue 3 + Vben Admin芋道
异步任务 asyncio预留 Celery

六、开发优先级

Phase 1核心

  1. 后端告警接收接口multipart/form-data
  2. 图片存储与访问
  3. SQLite 持久化
  4. 告警查询接口

Phase 2前端

  1. 告警列表页
  2. 告警详情页
  3. 人工处理功能

Phase 3增强

  1. 异步大模型分析
  2. 告警统计图表
  3. Docker 部署

七、与 ai_edge 对接示例

边缘端ai_edge调用

import requests

files = {
    'snapshot': ('alert.jpg', image_bytes, 'image/jpeg'),
    'data': (None, json.dumps(alert_data), 'application/json')
}

response = requests.post(
    "http://alert-platform/api/v1/alerts",
    files=files
)