modify: sophon 视频文件上传、告警接口

This commit is contained in:
2026-07-28 14:16:00 +08:00
parent 79eb7fe5cc
commit 320f6c19a2
17 changed files with 575 additions and 52 deletions
+6 -8
View File
@@ -7,6 +7,9 @@ AI Box Sophon Adapter 插件
3. 持久化心跳数据到 SQLite 数据库
4. 提供 HTTP API 查询设备在线状态和详情
5. 后台定时检查离线设备,触发异常告警
6. 视频上传接口 — 盒子告警时录制视频上传(FORM-DATA)
7. 告警上报接口 — 违规事件 JSON 报文字动解析入库
8. 告警查询接口 — 告警列表/详情查询
心跳超时机制:
- 设备按配置间隔(默认 5 秒)上报心跳
@@ -22,6 +25,7 @@ from chongming_worker import auto_bind_models
from chongming_worker.runtime import create_workers as _create_workers
from .router import *
from .routes import router # 自定义 FastAPI 路由(网关自动发现)
logger = logging.getLogger(__name__)
@@ -51,7 +55,7 @@ async def _check_offline_devices(interval: float):
from .models.orm import BoardHeartbeat
from sqlalchemy import select
stmt = select(BoardHeartbeat).where(BoardHeartbeat.is_online == True)
stmt = select(BoardHeartbeat).where(BoardHeartbeat.is_online == True) # type: ignore
result = await session.execute(stmt)
records = result.scalars().all()
@@ -97,18 +101,12 @@ async def create_workers(session, config, count=1, worker_manager=None):
# 初始化数据库
data_dir = Path(config.get("data_dir", "./data")) if isinstance(config, dict) else Path("./data")
db_path = data_dir / "storage" / "chongming" / "aibox_sophon_adapter.db"
db_path = data_dir / "aibox_sophon_adapter.db"
db_path.parent.mkdir(parents=True, exist_ok=True)
db = Database(db_path)
await db.initialize()
# 创建表
from .models.orm import BoardHeartbeat
async with db.get_session() as sess:
from sqlmodel import SQLModel
await sess.run_sync(lambda s: SQLModel.metadata.create_all(s.bind))
set_global_var("db", db)
set_global_var("heartbeat_timeout", hb_timeout)
set_global_var("heartbeat_interval", hb_interval)