docs: update PROGRESS.md - UI时间轴重构 + 关键帧持久化 + multipart超时修复
This commit is contained in:
30
PROGRESS.md
30
PROGRESS.md
@@ -339,3 +339,33 @@ AI 分析瓶颈: 帧5耗时 229s (疑似 ARM CPU 热降频), 其余帧 50-65s
|
||||
- Edge 单测:`/api/edge/chat/ask` → 200,`provider=nvidia`(Gemini 30s 超时后 NVIDIA 兜底成功,耗时 51s)
|
||||
- NAS E2E:插入临时事件上下文后 `/api/chat/ask` → 43s 返回模型回答,`context_summary` 命中 1 条事件,chat_id 落库;测试数据已清理
|
||||
- 无上下文时走短路分支(直接返回提示,不调 Edge),响应 <1s,属正常设计
|
||||
|
||||
## UI 时间轴重构 + 关键帧全链路持久化 (2026-08-20 20:45, commit 0d5173f/c5c8496)
|
||||
|
||||
**UI 重构(fam-ui/src/app.py 全量重写)**
|
||||
- 深色监控面板主题(CSS 变量 + 卡片化设计)
|
||||
- 事件时间轴页:左侧事件列表(时间/摄像头/帧数/摘要),右侧竖向时间轴(时间点 + 关键帧缩略图 224px + 人物/动作/衣着摘要 + 模型徽章),需关注事件红色高亮
|
||||
- 其余页面:AI 对话、对话历史、成员命名、统计图表同步适配新主题
|
||||
- 侧边栏任务队列状态(待处理/处理中/失败计数)
|
||||
|
||||
**关键帧持久化链路(Edge → NAS → UI)**
|
||||
- Edge `orchestrator._attach_frame_images`:处理结果注入关键帧 base64(按视觉分析输入帧位置对齐)
|
||||
- NAS `event_receiver._save_frame_images`:base64 解码落盘到 `fam-ui/static/frames/event_{id}/frame_{idx}.jpg`(先落盘 pop 掉 base64 再入库,避免大字段进 MariaDB)
|
||||
- UI `load_frame_b64`:读取落盘帧图内联 data URI 渲染;旧事件无帧图显示占位符
|
||||
- 配置:`fam-core/config.yaml` + `fam-ui/config.yaml` 新增 `storage.frame_image_dir`
|
||||
|
||||
**multipart 上传超时修复(commit c5c8496)**
|
||||
- 现象:task 50/51 直接上传 17.1MB 100% 失败 `('Connection aborted.', TimeoutError)`,恰好 10s 超时
|
||||
- 根因:requests/urllib3 发送 multipart body 期间 socket timeout 取的是 **connect timeout** 参数而非 read timeout,原 `(10, 300)` 下 17MB 跨境 1.4MB/s 需 ~117s 必然超时
|
||||
- 修复:`_dispatch_direct` timeout 改 `(120, 300)`
|
||||
|
||||
**端到端验证(2026-08-20 20:24-20:41)**
|
||||
- task 53:压缩 20.6MB → 分块上传 5/5(36s)→ Edge 分析 → Poller 落库 event_29(6 帧落盘)
|
||||
- task 50:直接上传成功(117s,超时修复生效)→ event_30(6 帧)
|
||||
- task 51:直接上传成功 → event_31(6 帧);task 52:重压缩 21.9MB → event_32(7 帧)
|
||||
- UI 浏览器实测:点击事件 #29 → 时间轴 6 个时间点、6 张关键帧全部加载(夜视画面可见人物)、每帧下方人物/动作摘要正常渲染
|
||||
- 重启残留处理:task 52 重启时被中断的孤儿 ffmpeg 已清理(`{out}.{pid}.tmp` 原子改名机制保证无损坏文件),重置 PENDING 后自动重跑成功
|
||||
|
||||
**经验**
|
||||
- Streamlit 1.61 窄视口(<960px)下 st.columns 自动垂直堆叠,详情区被挤到事件列表下方;浏览器自动化验证需注意 window 尺寸,用户桌面浏览器不受影响
|
||||
- 旧事件(新代码部署前)无落盘帧图属预期,占位符正常显示
|
||||
|
||||
Reference in New Issue
Block a user