feat: V1 VLM复核 + 企微通知 + 手动结单
- 新增3张通知路由表模型(notify_area, camera_area_binding, area_person_binding) - 新增VLM复核服务,通过qwen3-vl-flash对告警截图二次确认 - 新增企微通知服务,告警确认后推送文本卡片给责任人 - 新增通知调度服务,编排VLM复核→查表路由→企微推送流水线 - 新增企微回调接口,支持手动结单/确认处理/标记误报 - 新增通知管理API,区域/摄像头绑定/人员绑定CRUD - 告警上报主流程(edge_compat + yudao_aiot_alarm)接入异步通知 - 扩展配置项支持VLM和企微环境变量 - 添加openai==1.68.0依赖(通过DashScope兼容端点调用)
This commit is contained in:
@@ -404,6 +404,46 @@ def init_db():
|
||||
Base.metadata.create_all(bind=engine)
|
||||
|
||||
|
||||
class NotifyArea(Base):
|
||||
"""通知区域"""
|
||||
__tablename__ = "notify_area"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
area_id = Column(String(36), unique=True, nullable=False, index=True)
|
||||
area_name = Column(String(100), nullable=False)
|
||||
description = Column(String(200), nullable=True)
|
||||
enabled = Column(SmallInteger, default=1)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now)
|
||||
|
||||
|
||||
class CameraAreaBinding(Base):
|
||||
"""摄像头-区域映射"""
|
||||
__tablename__ = "camera_area_binding"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
camera_id = Column(String(64), unique=True, nullable=False, index=True)
|
||||
area_id = Column(String(36), nullable=False, index=True)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
|
||||
|
||||
class AreaPersonBinding(Base):
|
||||
"""区域-人员通知绑定"""
|
||||
__tablename__ = "area_person_binding"
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
area_id = Column(String(36), nullable=False, index=True)
|
||||
person_name = Column(String(50), nullable=False)
|
||||
wechat_uid = Column(String(100), nullable=False)
|
||||
role = Column(String(20), default="SECURITY")
|
||||
notify_level = Column(Integer, default=1)
|
||||
enabled = Column(SmallInteger, default=1)
|
||||
created_at = Column(DateTime, default=datetime.now)
|
||||
updated_at = Column(DateTime, default=datetime.now, onupdate=datetime.now)
|
||||
|
||||
|
||||
# ==================== 数据库管理 ====================
|
||||
|
||||
def close_db():
|
||||
global _engine, _SessionLocal
|
||||
if _engine:
|
||||
|
||||
Reference in New Issue
Block a user