╔═══════════════════════════════════════════════════════════════════╗ ║ VECTORIZATION AGENT GRAPH FLOW ║ ╠═══════════════════════════════════════════════════════════════════╣ ║ ║ ║ ┌─────────────────┐ ║ ║ │ INPUT TEXTS │ (Multilingual: EN, SI, TA) ║ ║ └────────┬────────┘ ║ ║ │ ║ ║ ▼ ║ ║ ┌─────────────────────────────────────────────────────┐ ║ ║ │ STEP 1: LANGUAGE DETECTION │ ║ ║ │ ├─ FastText (primary) │ ║ ║ │ └─ Unicode Script Analysis (fallback) │ ║ ║ └────────┬────────────────────────────────────────────┘ ║ ║ │ ║ ║ ▼ ║ ║ ┌─────────────────────────────────────────────────────┐ ║ ║ │ STEP 2: TEXT VECTORIZATION │ ║ ║ │ ├─ English → DistilBERT (768-dim) │ ║ ║ │ ├─ Sinhala → SinhalaBERTo (768-dim) │ ║ ║ │ └─ Tamil → Tamil-BERT (768-dim) │ ║ ║ └────────┬────────────────────────────────────────────┘ ║ ║ │ ║ ║ ▼ ║ ║ ┌─────────────────────────────────────────────────────┐ ║ ║ │ STEP 3: ANOMALY DETECTION │ ║ ║ │ ├─ Model: Isolation Forest / LOF │ ║ ║ │ ├─ Input: 768-dim embedding vectors │ ║ ║ │ └─ Output: anomaly_score (0-1), is_anomaly flag │ ║ ║ └────────┬────────────────────────────────────────────┘ ║ ║ │ ║ ║ ▼ ║ ║ ┌─────────────────────────────────────────────────────┐ ║ ║ │ STEP 4: EXPERT SUMMARY (GroqLLM) │ ║ ║ │ ├─ Opportunity Detection │ ║ ║ │ └─ Threat Detection │ ║ ║ └────────┬────────────────────────────────────────────┘ ║ ║ │ ║ ║ ▼ ║ ║ ┌─────────────────────────────────────────────────────┐ ║ ║ │ STEP 5: FORMAT OUTPUT │ ║ ║ │ └─ domain_insights[] for Combined Agent │ ║ ║ └────────┬────────────────────────────────────────────┘ ║ ║ │ ║ ║ ▼ ║ ║ ┌─────────────────┐ ║ ║ │ END │ → Passed to Feed Aggregator ║ ║ └─────────────────┘ ║ ║ ║ ╚═══════════════════════════════════════════════════════════════════╝