LOT 1 - Optimizare script build -Instalare mono comanda

This commit is contained in:
Dezvoltari Evotech 2026-06-27 06:42:02 -07:00
parent 5380c3fc63
commit 42ff22bf85
127 changed files with 16163 additions and 532 deletions

View file

@ -75,13 +75,13 @@ LLM-ul integrează totul și decide singur. **Noi nu decidem nimic.**
Pentru `POST /api/forensic-evidence` cu un video:
### 1. Upload + validare (api.py:106-180)
### 1. Upload + validare (api.py:152-211, în `handle_forensic_evidence`)
- Multipart streaming în chunks 64KB (nu buffer tot fișierul)
- Validare extensie: mp4/mov/avi/mkv/webm/jpg/png
- Asignare `job_id` UUID hex 16 chars
- Salvare temporară la `/app/data/inference/{job_id}/`
### 2. Orchestrator setup (forensic/orchestrator.py:75-110)
### 2. Orchestrator setup (forensic/orchestrator.py:220-270, în `run_forensic_pipeline`)
- **Adaptive `every_n_frames`** bazat pe durata video:
- < 5s every_n=1 (toate cadrele)
- < 30s every_n=3 (~10 fps efectiv)
@ -91,7 +91,7 @@ Pentru `POST /api/forensic-evidence` cu un video:
- Extracție cadre cu ffmpeg via `preprocessing.extract_frames()`
- Scriere `_meta.json` cu fps efectiv (m25 îl folosește pentru rPPG)
### 3. Rulare module (forensic/orchestrator.py:120-145)
### 3. Rulare module (forensic/orchestrator.py:283-296, via `_run_single_module` la :77)
Fiecare modul rulează **secvențial** (default), izolat în try/except:
- Crash într-un modul NU oprește restul
- Modulul eșuat returnează `empty_response()` cu primary_score=None
@ -117,7 +117,7 @@ Construiește:
- **summary** — obiect cu scoruri agregate pentru parsing programatic
- **instruction_for_llm** — text fix care explică LLM-ului cum să folosească datele
### 6. Răspuns (api.py:225-265)
### 6. Răspuns (api.py:235-256, ramura sync din `handle_forensic_evidence`)
- Sync (default): JSON imediat
- Async (`async_mode=1`): 202 cu job_id, polling pe `/api/status/{id}`