docs: update PROGRESS.md - UI时间轴重构 + 关键帧持久化 + multipart超时修复

This commit is contained in:
ericwyuan
2026-08-20 20:44:52 +08:00
parent c5c8496409
commit 634ff746a9

View File

@@ -339,3 +339,33 @@ AI 分析瓶颈: 帧5耗时 229s (疑似 ARM CPU 热降频), 其余帧 50-65s
- Edge 单测:`/api/edge/chat/ask` → 200`provider=nvidia`Gemini 30s 超时后 NVIDIA 兜底成功,耗时 51s - Edge 单测:`/api/edge/chat/ask` → 200`provider=nvidia`Gemini 30s 超时后 NVIDIA 兜底成功,耗时 51s
- NAS E2E插入临时事件上下文后 `/api/chat/ask` → 43s 返回模型回答,`context_summary` 命中 1 条事件chat_id 落库;测试数据已清理 - NAS E2E插入临时事件上下文后 `/api/chat/ask` → 43s 返回模型回答,`context_summary` 命中 1 条事件chat_id 落库;测试数据已清理
- 无上下文时走短路分支(直接返回提示,不调 Edge响应 <1s属正常设计 - 无上下文时走短路分支(直接返回提示,不调 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/536s→ Edge 分析 → Poller 落库 event_296 帧落盘)
- task 50直接上传成功117s超时修复生效→ event_306 帧)
- task 51直接上传成功 → event_316 帧task 52重压缩 21.9MB → event_327 帧)
- UI 浏览器实测:点击事件 #29 → 时间轴 6 个时间点、6 张关键帧全部加载(夜视画面可见人物)、每帧下方人物/动作摘要正常渲染
- 重启残留处理task 52 重启时被中断的孤儿 ffmpeg 已清理(`{out}.{pid}.tmp` 原子改名机制保证无损坏文件),重置 PENDING 后自动重跑成功
**经验**
- Streamlit 1.61 窄视口(<960px下 st.columns 自动垂直堆叠,详情区被挤到事件列表下方;浏览器自动化验证需注意 window 尺寸,用户桌面浏览器不受影响
- 旧事件(新代码部署前)无落盘帧图属预期,占位符正常显示