Relazione Tecnica riassuntiva Infrastruttura OS e applicativo AI
Infrastruttura Intelligenza Artificiale Locale e Sicurezza Informatica dell'Ente
1. Modello Software e Filosofia di Design (Stateless UX)
- Modello AI: Famiglia 8B o massimo 14B parametri rilasciata con licenza permissiva Apache 2.0 o MIT. I modelli sono altamente ottimizzati per il contesto multilingua con ottima comprensione della terminologia burocratico/amministrativa della Pubblica Amministrazione.
- Core Engine:
llama.cppeseguito in modalità bare-metal (nativa) direttamente sul sistema operativo Host per l'annullamento dei tempi di overhead. - Politica di Streaming (Disattivata): Per garantire una lettura fluida, istituzionale e priva di distrazioni visive per il cittadino, il parametro di streaming è impostato tassativamente su
"stream": false. Il sistema calcola l'output interamente in memoria e restituisce la risposta formattata in un unico blocco JSON compatto che contiene di default testo disclaimer di su avviso di utilizzo AI. - Gestione Stateless della Memoria: La KV Cache mantiene unicamente l'ultima interazione/risposta del cittadino o dell'operatore, liberando istantaneamente le risorse computazionali ad ogni completamento di output, massimizzando il throughput complessivo dell'hardware.
- Sessioni effimere ed anonime: Le sessioni per informative al cittadino sono ad accesso anonimo ed effimere con una durata di max 10 minuti.
2. Architettura Rete e Sicurezza Logica (Virtualizzazione KVM)
L'infrastruttura implementa un principio di sicurezza per compartimentazione rigida, separando il motore di calcolo pesante dai servizi esposti al pubblico:
[ HOST FISICO "Bare-Metal": Debian 13 Vanilla ]
│
├──► [CORE AI]: llama.cpp (Modelli 8B/14B e modelli embedding 2B) ── llama-server Curl accesso interno con proxy
│
├──► [CORE WEB/RAG]: PHP-FPM ── Orchestrazione Pipeline RAG (BM25 + Cosine + Cache)
│
├──► Sicurezza & Admin: Firewall + Fail2ban | Accesso RDP (3389) via IP Esclusivi (XFCE)
├──► Reverse Proxy: Apache (Mod_Proxy) ── Ascolta SOLO su Rete Isolata KVM (192.168.100.1)
│
└───► [ Hypervisor: Libvirt / KVM / Qemu ]
├──► [ VM 1: Golden Image ] (Spenta/Template)
├──► [ VM 2: Verifica Aggiornamenti ] (Ambiente di Staging/Test logici)
└──► [ VM 3: PRODUTTIVA ] (IP e linea di rete dedicati)
└─── Servizi: Front-End Chatbot (Licenza MIT/Apache 2)
└─── Invia le richieste alla pipeline RAG/AI dell'Host
Dettagli di Sicurezza del Sistema Informativo:
- Sistema Operativo: Debian 13 Vanilla configurato con ambiente desktop minimale ed efficiente XFCE.
- Accesso Amministrativo: Gestito tramite protocollo grafico RDP (porta 3389) blindato dal firewall dell'Ente e accessibile esclusivamente da indirizzi IP statici esplicitamente autorizzati.
- Pannello di Controllo: Virtualmin configurato con accesso vincolato unicamente a
localhost(127.0.0.1). Esso è utilizzabile esclusivamente all'interno della sessione RDP protetta per la verifica dei log di sistema, la gestione dei pacchetti e il monitoraggio dei servizi. - Isolamento della Comunicazione Interna: L'endpoint di
llama.cppe il backend di elaborazione non sono visibili dalla rete esterna o dalla LAN generale dell'Ente. La comunicazione avviene tramite una rete virtuale KVM Host-Only isolata (es.192.168.100.0/24).
3. Pipeline RAG Avanzata e Orchestrazione (PHP-FPM)
L'orchestrazione logica del sistema, l'interrogazione documentale e la sicurezza dei prompt sono interamente governate dall'ambiente PHP-FPM (FastCGI Process Manager) installato sull'host, il quale garantisce tempi di esecuzione fulminei e un isolamento nativo dei processi utente.
La pipeline di Retrieval-Augmented Generation (RAG) agisce secondo una logica di recupero ibrido a due fattori (Hybrid Search):
- Recupero Lessicale (BM25): Lo script PHP-FPM esegue una prima scansione algoritmica basata sulla frequenza delle parole chiave (Algoritmo BM25) all'interno dei documenti comunali indicizzati, intercettando riferimenti normativi esatti o specifici codici di delibere.
- Recupero Semantico (Cosine Similarity): In parallelo, il testo della query viene convertito in vettori (Embedding) e confrontato tramite Cosine Similarity rispetto al database vettoriale, catturando l'intento logico e il significato della domanda del cittadino, anche in assenza di parole chiave esatte.
- Embedding Cache Layer: Per abbattere drasticamente i tempi di calcolo e non sovraccaricare le GPU, le interrogazioni ricorrenti (es. domande frequenti su orari, scadenze IMU, TARI) e i relativi embedding dei blocchi documentali stabili vengono salvati in un livello di Cache ultra-veloce gestito da PHP. Se un cittadino pone una domanda analoga a una già processata, il sistema recupera il contesto istantaneamente dalla cache senza interrogare nuovamente i modelli di embedding.
- Sintesi Finale: PHP-FPM unisce i risultati di BM25 e Cosine Similarity, valida la conformità del testo (filtrando eventuali dati sensibili o tentativi di prompt injection) e invia il prompt arricchito tramite il Reverse Proxy Apache (
mod_proxy) verso l'endpoint locale dillama.cpp.
L’architettura proposta adotta un approccio 'Secure by Design' pienamente allineato alle direttive europee e nazionali per la tutela della riservatezza dei dati e la continuità operativa dei servizi pubblici digitali.