界面重做(深色监控面板主题):
- 事件时间轴页: 左侧事件列表卡片 + 右侧关键帧时间轴
(时间点 + 视频帧 + 人物/动作/衣着摘要 + 关注标记)
- 全局 CSS: 深色主题、卡片化按钮、统计卡、对话气泡、成员卡片
- 侧边栏任务队列状态徽章; 历史帧无图时优雅降级占位
关键帧持久化链路:
- Edge orchestrator: process_push_task 成功后把 keyframes
base64 注入 frame_details[i].frame_image (位置对齐视觉输入帧)
- NAS event_receiver: 落库前 base64 解码写盘到
fam-ui/static/frames/event_{id}/frame_{idx}.jpg
- payload 增量 ~300KB/事件 (6帧 jpeg q80), 队列/拉取均无压力
配置: fam-core/fam-ui 新增 storage.frame_image_dir
54 lines
1.7 KiB
YAML
54 lines
1.7 KiB
YAML
# FAM-Core 配置文件 (NAS 端) - 实际部署配置
|
||
# 注: Tailscale 防火墙待修复,当前 edge_url 使用 Oracle 公网 IP
|
||
# 异步队列模式 + 分块断点续传:
|
||
# 小文件(<=50MB): 直接上传 /enqueue
|
||
# 大文件(>50MB): 分块(20MB/块)上传 /chunk → /assemble 合并入队
|
||
# → NAS Poller 定期从 /api/edge/results 拉取结果写库
|
||
# Ollama 未对外暴露,chat_handler 通过 FAM-Edge 代理
|
||
|
||
server:
|
||
host: "0.0.0.0"
|
||
port: 8000
|
||
|
||
database:
|
||
host: "127.0.0.1"
|
||
port: 3306
|
||
user: "root"
|
||
password: "iLoveJava5!"
|
||
database: "sentinel_home_ai"
|
||
unix_socket: "/run/mysqld/mysqld10.sock"
|
||
|
||
scheduler:
|
||
scan_interval: 60
|
||
# 正式目录 /volume1/surveillance/Generic_ONVIF-001
|
||
video_dir: "/volume1/surveillance/Generic_ONVIF-001"
|
||
video_extensions: [".mp4", ".mkv", ".avi"]
|
||
file_stable_seconds: 60
|
||
camera_name: "客厅"
|
||
|
||
dispatcher:
|
||
poll_interval: 30
|
||
edge_url: "http://129.146.203.203:5000/api/edge/video/enqueue"
|
||
max_retries: 5 # 文件级重试次数(分块级重试另计,每块3次)
|
||
stale_timeout: 600 # PROCESSING 超时回收(10分钟)
|
||
|
||
poller:
|
||
poll_interval: 30
|
||
results_url: "http://129.146.203.203:5000/api/edge/results"
|
||
batch_size: 10
|
||
timeout: 30
|
||
|
||
video_server:
|
||
base_url: "http://127.0.0.1:8000/media"
|
||
token: "sentinel-media-2026"
|
||
video_dir: "/volume1/surveillance"
|
||
|
||
chat_handler:
|
||
# 智能问答统一走 FAM-Edge 编排端点(Gemini → NVIDIA → 本地 Ollama 兜底)
|
||
qa_url: "http://129.146.203.203:5000/api/edge/chat/ask"
|
||
timeout: 120
|
||
|
||
storage:
|
||
# 关键帧落盘目录(event_receiver 写入,fam-ui 读取展示时间轴)
|
||
frame_image_dir: "/volume1/web/sentinel-home-ai/fam-ui/static/frames"
|