WikidAI - PoC Implementation
Sistema multi-agente educational che dimostra l’orchestrazione trasparente di AI con Gemini 2.5 Pro.
📋 Caratteristiche PoC Implementate
✅ US-PoC-001: Setup Docker
- Dockerfile multi-stage per il backend
- Container frontend basato su Nginx
- Redis per caching futuro
- Hot-reload abilitato per lo sviluppo
✅ US-PoC-002: Integrazione Gemini
- Gemini 2.5 Pro con modalità Thinking
- Function calling per l’orchestrazione degli agenti
- Gestione della cronologia delle conversazioni
✅ US-PoC-003: Agente Wikidata
- Generazione SPARQL da linguaggio naturale
- Validazione della sintassi con sparqljs
- Sanificazione di sicurezza (query read-only)
- “SPARQL Gauntlet” implementato
✅ US-PoC-004: Agente Wikipedia
- Recupero riassunti dall’API di Wikipedia
- Gestione errori per articoli mancanti
- Output formattato
✅ US-PoC-005: Workflow Multi-Turn
- Conservazione della cronologia delle conversazioni
- Chiamate sequenziali agli agenti
- Gestione della “Thought signature”
✅ US-PoC-006: UI Educativa
- Dashboard a 3 pannelli (Input, Reasoning, Output)
- Visualizzazione in tempo reale del ragionamento dell’AI
- Tracciamento delle chiamate agli agenti
- Visualizzazione metriche (latenza, agenti utilizzati)
📝 Query di Esempio
È possibile provare queste query nella dashboard:
- Query Semplice Wikipedia:
- “Chi era Albert Einstein?”
- Atteso: Riassunto da Wikipedia
- Query Complessa SPARQL:
- “Chi è il sindaco di Roma?”
- Atteso: Generazione ed esecuzione di SPARQL su Wikidata
- Query Multi-Turn:
- “Parlami di Einstein e della sua città natale”
- Atteso: Chiamate multiple ad agenti (Wikipedia → Wikipedia)
🏗️ Architettura
WikidAI adotta una architettura multilivello containerizzata in Docker che mostra in modo trasparente come gli agenti AI cooperano per rispondere a query complesse.
🔍 Panoramica dei Componenti
- Frontend (Vanilla JS + Nginx): fornisce un’interfaccia didattica e visualizza in tempo reale il ragionamento dell’AI.
- Backend (Node.js + Express): gestisce la logica applicativa e coordina l’orchestrazione.
- Gemini Orchestrator: seleziona e coordina dinamicamente gli agenti in base alla query.
- Agenti Specializzati:
- WikidataAgent: genera e valida query SPARQL.
- WikipediaAgent: recupera riassunti multilingue.
- NominatimAgent: fornisce geocodifica da OpenStreetMap.
- OpenMeteoAgent: integra dati meteo in tempo reale.
- Redis Cache: prevista per caching, rate limiting e metriche.
⚙️ Pipeline di Orchestrazione
- Input utente → Gemini analizza intento e seleziona agente appropriato.
- Esecuzione agente → raccolta dati esterni.
- Aggregazione risultati → reasoning finale.
- Output trasparente → dashboard utente.
💡 Decisioni di Design
- Vanilla JS per trasparenza e semplicità didattica.
- Gemini 2.5 Pro per reasoning esplicito e function calling nativo.
- Docker-first per isolamento e riproducibilità.
🔗 Estensioni Future
- Integrazione BullMQ per rate limiting.
- Nuovi agenti (DuckDuckGo, DBpedia, Europeana).
- Dashboard metrica avanzata con performance e logica SPARQL visuale.