Salta al contenuto

AI Products · Approfondimento

Architettura di un prodotto AI in produzione: dai dati ai guardrail

I sei strati che trasformano un prototipo in un prodotto AI affidabile: ingestion governata, retrieval misurabile, orchestrazione deterministica, eval in CI, guardrail end-to-end e controllo di costi e latenza.

Software house — su misura, costruito da noi

PRODOTTO AI · ARCHITETTURA DI PRODUZIONE

Entra · Richiesta grezza + fonti

Esce · Una risposta che puoi rilasciare, tracciare e di cui fidarti

01

Dati e ingestione (lineage, mascheramento PII)

Ogni documento entra con parsing strutturato, classificazione di sensibilità e redazione deterministica del PII prima di toccare il modello, e ogni chunk conserva il legame con file sorgente, versione di policy e run che l'ha generato: senza questo strato nessuna risposta regge un audit.

02

Retrieval (ricerca ibrida + riordino)

Il recupero fonde ricerca semantica a vettori e ricerca lessicale BM25 via Reciprocal Rank Fusion, poi un reranker cross-encoder riordina i candidati per portare in cima i passaggi davvero pertinenti: è qui che si vince o si perde la fedeltà della risposta.

03

Orchestrazione (agente delimitato, chiamate a tool)

Un workflow deterministico decide dove sei nel processo mentre il modello sceglie cosa fare entro un insieme vincolato di azioni, con chiamate a tool su protocolli standard, esecuzione durevole e human-in-the-loop sulle azioni a impatto alto: l'agente resta prevedibile anche sotto carico.

04

Valutazione e osservabilità (eval in CI, tracing)

Un dataset golden costruito sui fallimenti reali, grader calibrati su revisori umani e un gate in CI bloccano le regressioni prima del rilascio, con trace che seguono convenzioni semantiche aperte (OpenTelemetry GenAI) per restare interoperabili e indagabili.

05

Guardrail e sicurezza (input/output, injection)

I guardrail validano end-to-end input, contesto recuperato e output contro la prompt injection — la vulnerabilità più sfruttata — classificando il contesto intermedio non fidato e misurando ogni azione rispetto all'intento originale dell'utente.

06

Costo e latenza (routing, caching, TTFT)

Routing per complessità, caching semantico e budget di token tengono sotto controllo costo e time-to-first-token con streaming per la latenza percepita, così il conto non esplode e la qualità non degrada quando il traffico cresce.

Il punto

Il demo convince, il prodotto crolla

Un prototipo AI funziona perché gira su input noti, in single-tenant, senza traffico avverso. La produzione cambia tutte le regole.

  • Risposte sicure ma sbagliate. Il modello cita con tono autorevole documenti che non sono quelli giusti: il collo di bottiglia è il retrieval, non la generazione.
  • Comportamento non riproducibile. Lo stesso input dà esiti diversi e nessuno sa perché, perché non esistono trace né dataset di regressione.
  • Costi e latenza fuori controllo. Prompt verbosi, nessun caching, nessun routing per complessità: il conto cresce e il time-to-first-token peggiora sotto carico.
  • Superficie d'attacco aperta. Istruzioni ostili nascoste in un documento o in un output di tool dirottano l'agente: la prompt injection è la vulnerabilità più sfruttata.
  • Nessuna tracciabilità. Quando un utente segnala un errore non si risale al documento sorgente, al chunk e alla run che l'hanno prodotto.

Per chi deve portare un'AI da proof-of-concept a sistema in produzione con audit, SLA e tetti di costo.

I sei strati

Cosa rende un prototipo un prodotto vero

Un prodotto AI in produzione è un sistema distribuito in cui il modello è solo il pianificatore. Sei strati lo reggono.

Dati e ingestion

I documenti entrano con parsing strutturato, classificazione di sensibilità e redazione deterministica del PII prima di toccare il modello. Ogni output è tracciabile al file sorgente, alla versione di policy e alla run che l'ha generato.

Retrieval

Il recupero combina ricerca semantica (vettori) e lessicale (BM25) fusa via Reciprocal Rank Fusion, poi un reranker cross-encoder riordina i candidati. È qui che si vince o si perde la fedeltà della risposta.

Orchestrazione e agenti

Un workflow deterministico decide dove sei nel processo; il modello decide cosa fare entro un insieme vincolato di azioni. Le chiamate a tool passano da protocolli standard, con esecuzione durevole e human-in-the-loop sulle azioni a impatto alto.

Valutazione e osservabilità

Un dataset golden costruito sui fallimenti reali, grader calibrati su revisori umani e un gate in CI che blocca le regressioni prima del rilascio. Le trace seguono convenzioni semantiche aperte (OpenTelemetry GenAI) per essere interoperabili.

Guardrail e costi

I guardrail validano input, contesto recuperato e output end-to-end contro la prompt injection; routing per complessità, caching semantico e budget di token tengono sotto controllo costo e latenza senza degradare la qualità.

Dal dato alla risposta

Il percorso di una singola richiesta

Cosa attraversa una richiesta quando l'architettura è completa, dallo strato dati al ritorno della risposta.

1
Ingest governato

Il documento è parsato, classificato per sensibilità, ripulito dal PII e indicizzato con tag di scopo; ogni chunk conserva il legame con la fonte.

2
Retrieval e rerank

Ricerca ibrida vettore + parola chiave, fusione dei rank, poi reranking cross-encoder per portare in cima i passaggi davvero pertinenti.

3
Orchestrazione vincolata

L'orchestratore instrada la richiesta, chiama i tool necessari e ferma l'agente sui punti di decisione critici; ogni invocazione è loggata.

4
Guardrail, eval e ritorno

Output validato contro policy e segnali di iniezione, valutato su trace campionate, poi restituito con caching e streaming per la latenza percepita.

Sei strati attraversati per ogni richiesta, ognuno misurabile e tracciabile in modo indipendente.

Prototipo vs prodotto

Dove cambia tutto

Stesso modello, mondo diverso. La distanza non è nel prompt: è negli strati che lo circondano.

DimensionePrototipoProdotto in produzione
DatiFile caricati a manoIngestion governata, PII redatto, lineage tracciabile
RetrievalSolo ricerca vettorialeIbrida + reranking, fedeltà misurata
ControlloAgente liberoWorkflow deterministico, tool vincolati, human-in-the-loop
QualitàSi prova a manoEval in CI su dataset golden, gate di regressione
Sicurezza e costiNessun guardrailDifesa a strati, routing, caching, budget di token
Cosa ottieni

Il valore dei sei strati

Non è teoria di architettura: è ciò che permette di mettere la firma su una risposta davanti a un cliente o a un audit.

01

Risposte che reggono l'audit

Ogni output risale al documento, al chunk e alla versione di policy: spiegabile, riproducibile, difendibile.

02

Affidabilità sotto traffico reale

Orchestrazione deterministica e guardrail end-to-end tengono il comportamento prevedibile anche con input avversi e multi-tenant.

03

Qualità che non regredisce

Le eval in CI bloccano i peggioramenti prima del rilascio, non dopo la segnalazione di un utente.

04

Costi e latenza governati

Routing per complessità, caching semantico e budget di token mantengono il conto e il time-to-first-token sotto controllo a scala.

In produzione un agente non è un prompt: è un sistema distribuito in cui il modello è il pianificatore.

Domande dirette

Quello che ci chiedono

Perché la risposta è sicura ma sbagliata?

Quasi sempre il problema è a monte: il retrieval ha portato i documenti sbagliati e il modello ha generato una risposta ben formata ma fondata sulla fonte errata. Si interviene su retrieval ibrido, reranking e misura della fedeltà, non sul prompt.

Come ci difendiamo dalla prompt injection?

Con difesa a strati: classificare input e contesto recuperato prima del modello, validare l'output contro policy, e valutare ogni azione dell'agente rispetto all'intento originale dell'utente, isolando il contesto intermedio non fidato.

Cosa serve oltre a un modello che passa le eval?

Un prototipo che passa le eval è un ingrediente. Servono anche dataset golden dai fallimenti reali, trace, gate in CI, canary, rollback e runbook: si ingegnerizzano, non si danno per scontati.

Casi

Dal problema al risultato — anonimi.

Servizi legali · anonimo

La citazione sicura ma sbagliata

Problema Un assistant documentale rispondeva con tono autorevole citando il contratto sbagliato: in demo funzionava, davanti ai clienti crollava la fiducia perché nessuno sapeva risalire alla fonte.

Metodo Sostituita la sola ricerca vettoriale con retrieval ibrido (vettori + BM25) fuso via Reciprocal Rank Fusion e reranking cross-encoder, aggiunto lineage chunk-a-fonte e una misura di fedeltà sulle risposte campionate.

Risultato Ogni output torna ora al documento, al chunk e alla versione di policy che lo fondano; le risposte non pertinenti vengono intercettate prima dell'utente invece di emergere come reclamo.

Servizi finanziari · anonimo

L'agente dirottato da un documento

Problema Un agente con accesso a tool eseguiva istruzioni ostili nascoste dentro i documenti caricati e negli output dei tool: una prompt injection che apriva una superficie d'attacco in ambiente multi-tenant.

Metodo Introdotta difesa a strati — classificazione di input e contesto recuperato prima del modello, validazione dell'output contro policy, isolamento del contesto intermedio non fidato e human-in-the-loop sulle azioni a impatto alto.

Risultato Il comportamento dell'agente è rimasto prevedibile anche con input avversi; ogni azione viene valutata rispetto all'intento originale dell'utente e le invocazioni dei tool sono loggate e tracciabili.

Sanità · anonimo

La qualità che regrediva in silenzio

Problema Lo stesso input dava esiti diversi e i peggioramenti emergevano solo dopo la segnalazione di un utente, perché non esistevano trace né un dataset di regressione su cui appoggiarsi.

Metodo Costruito un dataset golden a partire dai fallimenti reali, calibrati i grader su revisori umani, aggiunto un gate di eval in CI con canary e rollback e trace conformi a OpenTelemetry GenAI.

Risultato Le regressioni vengono bloccate prima del rilascio invece che dopo il reclamo, e il comportamento del sistema è oggi riproducibile e indagabile run per run.

Approfondisci ancora

Portiamolo nel tuo stack.