文档版本:1.0
创建日期:2026-04-14
功能名称:AI识别任务管理
功能归属:多源视频智能检测工具
一、背景与问题
1.1 现状问题
用户在视频监控列表中对某路视频流开启AI识别后,系统即启动模型推理进程对该视频流进行实时目标检测与标注。
当前存在以下问题:
| 问题 | 影响 |
|---|---|
| 用户开启AI识别后离开页面,未主动关闭 | GPU/CPU资源持续占用,无人释放 |
| 多路视频同时开启识别,无汇总视图 | 管理员不知道当前有多少路在跑 |
| 单路视频识别时长无上限,无超时提醒 | 长时间空跑产生资源浪费 |
| 无操作记录,无法追溯 | 问题排查困难 |
1.2 解决思路
新增 AI识别任务管理 功能模块,集中展示所有正在运行的AI识别任务,支持管理员查看任务状态、强制关闭超时任务,并提供自动超时告警机制。
二、功能概述
AI识别任务管理是一个面向系统管理员/运维人员的任务中控面板,具备以下核心能力:
- 任务总览:展示当前所有正在运行的AI识别任务列表
- 超时预警:对运行时长超过阈值的任务进行高亮告警
- 手动关闭:管理员可对任意任务执行强制关闭操作
- 历史记录:查看已关闭/已结束任务的操作历史
- 统计看板:汇总当前在运任务数、资源占用趋势
三、用户角色
| 角色 | 权限说明 |
|---|---|
| 普通用户 | 只能看到自己发起的任务;可关闭自己的任务 |
| 管理员 | 可查看所有用户的任务;可强制关闭任意任务 |
四、功能详细设计
4.1 入口位置
在「多源视频智能检测工具」左侧导航栏新增菜单项:任务监控(图标:任务列表/仪表盘样式),位于「模型管理」下方。
左侧导航
├── 视频监控
├── 视频源
├── 模型管理
├── 任务监控 ← 新增
└── 视频标注
4.2 任务监控主页面
4.2.1 顶部统计卡片
展示4个实时统计指标(小卡片形式,类似现有视频监控列表的环形图统计区域风格):
| 指标 | 说明 |
|---|---|
| 运行中任务数 | 当前正在识别的任务总数 |
| 超时任务数 | 运行时长超过告警阈值的任务数(橙色/红色标注) |
| 今日累计启动 | 今日共启动AI识别任务的次数 |
| 今日释放任务 | 今日已关闭的任务数 |
4.2.2 任务列表
列表字段如下:
| 字段名 | 说明 | 备注 |
|---|---|---|
| 视频源名称 | 识别任务对应的视频源 | 可点击跳转到该视频源详情 |
| 使用模型 | 当前任务使用的AI模型名称 | 如:无人机、矿山安全等 |
| 启动人 | 操作开启识别的用户名 | - |
| 启动时间 | 任务开启的时间戳 | 格式:YYYY-MM-DD HH:mm:ss |
| 运行时长 | 从启动到当前的持续时长 | 实时刷新,格式:HH:mm:ss |
| 状态 | 运行中 / 超时告警 / 已关闭 | 颜色区分:绿/橙/灰 |
| 操作 | 查看 / 关闭 | - |
4.2.3 筛选与搜索
顶部提供以下筛选项:
- 状态筛选:全部 / 运行中 / 超时告警
- 时间筛选:今日 / 近3天 / 近7天 / 自定义
- 关键词搜索:按视频源名称或启动人搜索
4.2.4 超时告警规则
| 运行时长 | 状态 | 列表行样式 |
|---|---|---|
| < 2小时 | 运行中 | 正常白色文字 |
| 2小时 ~ 4小时 | 超时告警(一级) | 橙色高亮行 |
| > 4小时 | 超时告警(二级) | 红色高亮行 + 角标提示 |
告警阈值建议后台可配置(默认2小时/4小时),不在本期前端硬编码。
4.3 任务详情侧滑面板
点击列表行中的「查看」按钮,在页面右侧弹出侧滑面板(不跳转页面),展示以下信息:
基本信息区
- 视频源名称、类型(FILE / RTSP / WebRTC 等)
- 视频源地址
- 使用模型名称 + 版本
- 输出格式
运行状态区
- 启动时间
- 当前运行时长(动态刷新)
- 识别帧数(累计处理帧数)
- 识别告警次数(触发目标检测的帧数/事件数)
操作区
- 「前往视频源」:跳转到视频监控页该路视频的详情
- 「强制关闭」:关闭当前任务(需二次确认弹窗)
4.4 关闭任务确认弹窗
点击「关闭」或「强制关闭」时弹出确认框:
┌─────────────────────────────────────┐
│ 确认关闭AI识别任务? │
│ │
│ 视频源:测试视频源 │
│ 已运行:3小时 24分钟 │
│ 操作人:linchao │
│ │
│ 关闭后该视频流将停止AI识别, │
│ 已生成的识别记录不受影响。 │
│ │
│ [取消] [确认关闭] │
└─────────────────────────────────────┘
4.5 历史任务记录页
通过 Tab 切换(「运行中」/ 「历史记录」),历史记录展示已关闭的任务,字段如下:
| 字段名 | 说明 |
|---|---|
| 视频源名称 | 同上 |
| 使用模型 | 同上 |
| 启动人 | 同上 |
| 启动时间 | 同上 |
| 关闭时间 | 任务实际关闭时间 |
| 持续时长 | 从启动到关闭的总时长 |
| 关闭方式 | 用户手动 / 管理员强制 / 系统超时自动 |
| 关闭人 | 执行关闭操作的用户名 |
五、超时自动关闭机制(可选扩展)
本期可作为可选功能,后端支持后再开放前端配置入口。
系统支持配置超时自动关闭策略:
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 超时时长 | 超过该时长自动关闭任务 | 6小时 |
| 自动关闭开关 | 是否启用自动关闭 | 关闭(需手动开启) |
| 通知方式 | 关闭前N分钟通知启动人 | 提前15分钟站内通知 |
自动关闭触发后,任务状态记录为「系统超时自动关闭」,写入历史记录。
六、交互流程图
用户开启AI识别
│
▼
系统创建识别任务(写入任务表,状态=运行中)
│
├──── 正常使用 ────► 用户手动点击"关闭" ──► 任务状态=已关闭
│
├──── 超时告警 ────► 管理员进入任务监控 ──► 手动强制关闭 ──► 任务状态=已关闭
│
└──── 超时自动关闭(可选)────► 系统自动终止 ──► 任务状态=系统自动关闭
七、数据结构(供后端参考)
7.1 AI识别任务表(ai_task)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | bigint | 主键 |
| video_source_id | bigint | 视频源ID |
| video_source_name | varchar | 视频源名称(冗余存储) |
| model_id | bigint | 模型ID |
| model_name | varchar | 模型名称(冗余存储) |
| model_version | varchar | 模型版本 |
| output_format | varchar | 输出格式(WebRTC/RTSP等) |
| start_user_id | bigint | 启动人用户ID |
| start_user_name | varchar | 启动人用户名 |
| start_time | datetime | 启动时间 |
| end_time | datetime | 关闭时间(NULL=运行中) |
| duration_seconds | int | 持续时长(秒,关闭时写入) |
| status | tinyint | 1=运行中 2=超时告警 3=用户关闭 4=管理员强制关闭 5=系统自动关闭 |
| close_user_id | bigint | 关闭操作人ID(系统关闭时为NULL) |
| close_user_name | varchar | 关闭操作人名称 |
| total_frames | bigint | 累计处理帧数 |
| alert_count | int | 识别告警次数 |
| created_at | datetime | 记录创建时间 |
| updated_at | datetime | 记录更新时间 |
7.2 关键接口(参考)
| 接口 | 方法 | 说明 |
|---|---|---|
/api/ai-task/running | GET | 获取运行中任务列表(支持分页/筛选) |
/api/ai-task/history | GET | 获取历史任务列表(支持分页/筛选) |
/api/ai-task/{id} | GET | 获取单个任务详情 |
/api/ai-task/{id}/close | POST | 关闭指定任务 |
/api/ai-task/stats | GET | 获取统计数据(运行中/超时/今日等) |
八、UI设计要求
- 延续系统现有风格:深色背景(
#0a0e17或类似深蓝黑)+ 紫色/青色主题色 - 任务列表状态色规范:
- 运行中:
#00d4aa(青绿色) - 超时告警(一级):
#f59e0b(橙黄色) - 超时告警(二级):
#ef4444(红色) - 已关闭:
#6b7280(灰色)
- 运行中:
- 运行时长字段实时刷新,建议每30秒轮询或前端本地计时
- 超时任务行需要有明显视觉区分(背景色区别 + 图标提示),避免被忽视
- 列表支持分页,每页默认20条
九、本期范围(v1.0)
| 功能 | 是否纳入本期 |
|---|---|
| 任务监控主页面(运行中列表) | ✅ 是 |
| 任务详情侧滑面板 | ✅ 是 |
| 超时告警高亮 | ✅ 是 |
| 手动关闭任务 | ✅ 是 |
| 历史任务记录 | ✅ 是 |
| 顶部统计卡片 | ✅ 是 |
| 超时自动关闭配置 | ⏳ 下期扩展 |
| 通知/消息推送 | ⏳ 下期扩展 |
| 资源占用曲线图 | ⏳ 下期扩展 |
十、待确认事项
- 超时告警阈值:当前建议2小时/4小时,是否符合实际使用场景?需与运维团队确认。
- 自动关闭是否本期上线:若后端支持,可同步实现配置入口。
- 任务关闭是否影响视频源状态:关闭AI识别任务后,视频源本身的连接状态是否同步断开?
- 普通用户是否可见他人任务:建议普通用户只看自己,管理员看全部,需确认权限设计。
- 识别帧数/告警次数统计:后端是否已有相关埋点数据可用?
文档完成,待评审确认后进入原型设计阶段。