feat: video analysis switched to push mode (upload whole video, sync response)
Rationale: Oracle cannot reach NAS (Tailscale userspace mode on NAS, no TUN), the old pull+webhook design requires Edge to download video from NAS and callback to NAS - both blocked. New design is one-way NAS -> Oracle: - FAM-Edge: new POST /api/edge/video/push endpoint accepts multipart video upload, reuses existing OpenCV scene-change keyframe selection, analyzes synchronously and returns the result payload directly in the HTTP response (no webhook callback). Old /api/edge/video/analyze kept for compatibility. - FAM-Edge: VideoPreprocessor.save_upload() saves the uploaded file - FAM-Edge: AIOrchestrator.process_push_task() runs the full pipeline (health check -> extract -> select -> compress -> VLM -> fusion) and returns callback-style payload dict - FAM-Core: Dispatcher rewritten to push mode - reads local video file, uploads with task metadata (camera_name, event_start_time from file mtime, known_members_context), applies the result to DB via shared event_receiver.apply_success_event() - FAM-Core: event_receiver success logic extracted into reusable apply_success_event() (used by both webhook route and dispatcher) - config: edge_url -> /api/edge/video/push, push_timeout 1800s, gunicorn Edge timeout raised to 1800s for long synchronous analysis
This commit is contained in:
@@ -21,9 +21,9 @@ scheduler:
|
||||
|
||||
dispatcher:
|
||||
poll_interval: 30 # 轮询间隔(秒)
|
||||
edge_url: "http://100.x.x.20:5000/api/edge/video/analyze"
|
||||
webhook_url: "http://100.x.x.10:8000/api/core/callback/event"
|
||||
edge_url: "http://100.x.x.20:5000/api/edge/video/push" # 推送模式端点(视频上传,同步返回结果)
|
||||
max_retries: 3
|
||||
push_timeout: 1800 # 推送+分析同步超时(秒)
|
||||
|
||||
video_server:
|
||||
base_url: "http://100.x.x.10:8000/media"
|
||||
|
||||
Reference in New Issue
Block a user