sequenceDiagram
participant B as Backend (LOT 2)
participant G as LLM Gateway (FastAPI)
participant V as vLLM Qwen3.5
B->>G: POST /v1/chat/completions {messages:[{user, [text, image_url]}]}
G->>V: Forward multimodal request
V->>V: Procesare imagine + text (GPU)
V->>V: OCR, descriere, detecție artefacte AI
V-->>G: 200 {response: structured JSON}
Note over G: Răspuns structurat: description, ocr_text, ai_artifacts, anomalies
G-->>B: 200 {response, model_used}
4. Flux analiză video — detecție deepfake (BusterX)
sequenceDiagram
participant B as Backend (LOT 2)
participant VA as Video Analysis API
participant F as ffmpeg
participant BX as BusterX (vLLM)
B->>VA: POST /analyze/video {video_url}
VA->>VA: Download video
VA->>F: Extragere cadre (frame sampling configurabil)
F-->>VA: Cadre extrase (N imagini)
loop Pentru fiecare cadru
VA->>BX: POST analiză cadru
BX->>BX: Detecție artefacte deepfake
BX-->>VA: {score, artifacts, confidence}
end
VA->>VA: Agregare scoruri per cadru
VA->>VA: Calculare verdict final
VA-->>B: 200 {verdict, score, evidence_frames, analysis_details}
5. Flux RAG — interogare bază de cunoștințe
sequenceDiagram
participant B as Backend (LOT 2)
participant R as RAG Service
participant E as Embeddings API
participant VS as Vector Store
participant RR as Rerank API
B->>R: POST /v1/query {query, top_k, filters}
R->>E: Embedding query text
E-->>R: Vector embedding
R->>VS: Nearest neighbor search {vector, top_k: 20}
VS-->>R: Documente candidat (cu scoruri similaritate)
R->>RR: Reranking documente {query, documents}
RR-->>R: Documente reordonate (scoruri relevanță)
R->>R: Filtrare top_k final
R-->>B: 200 {documents:[{text, score, source, metadata}]}
6. Flux Web Crawl — colectare evidence
sequenceDiagram
participant B as Backend (LOT 2)
participant W as Web Crawl API
participant S as Motor căutare (SearXNG / provideri)
participant P as Pagini Web
B->>W: POST /v1/gather {claim, max_sources}
W->>S: Căutare web {query: claim}
S-->>W: Rezultate căutare (URLs + snippets)
loop Pentru fiecare URL relevant
W->>P: Fetch pagină
P-->>W: Conținut HTML
W->>W: Extragere conținut structurat (text, metadate, autor, dată)
end
W->>W: Structurare evidence package
W-->>B: 200 {sources:[{url, title, content, snippet, date, credibility_indicators}]}
7. Flux Sandbox — analiză media (EXIF / ELA / spectrogramă / cadre)
sequenceDiagram
participant B as Backend (LOT 2)
participant SB as Sandbox API
participant PY as Python Runtime (izolat)
B->>SB: POST /analyze {media_url, analysis_type}
SB->>SB: Download fișier media (stocare temporară)
alt Imagine
SB->>PY: Execuție EXIF extraction
PY-->>SB: Metadata EXIF
SB->>PY: Execuție Error Level Analysis
PY-->>SB: Rezultat ELA
else Audio
SB->>PY: Execuție spectrogramă
PY-->>SB: Analiză spectrogramă
else Video
SB->>PY: Execuție frame analysis
PY-->>SB: Semnături digitale + anomalii
end
SB->>SB: Cleanup fișiere temporare
SB-->>B: 200 {metadata, anomalies, signatures, analysis_type}
Note over SB: Sandbox: izolare completă, timeout, restricții resurse, audit