Perché il RAG risolve il problema della conoscenza aggiornata

Un modello Azure OpenAI (ad esempio GPT-4o) conosce solo ciò che ha visto durante il training e non ha accesso ai documenti aziendali. Il pattern RAG (Retrieval-Augmented Generation) aggira questo limite senza ri-addestrare il modello: al momento della richiesta, il sistema recupera i passaggi rilevanti da una base di conoscenza, li aggiunge al prompt come contesto e lascia che il modello generi la risposta fondata su quel materiale (grounding).

I tre passi:

  • Retrieve — la query dell’utente viene usata per interrogare un indice (tipicamente Azure AI Search) e restituire i chunk più pertinenti.
  • Augment — i chunk recuperati vengono iniettati nel prompt insieme alla domanda.
  • Generate — il modello sintetizza la risposta usando quel contesto, riducendo le allucinazioni.

Azure OpenAI On Your Data

On Your Data è la funzionalità che orchestra il pattern RAG in modo gestito: collega un deployment di Azure OpenAI a una data source (di solito Azure AI Search, ma anche Azure Blob Storage o Cosmos DB) senza che tu debba scrivere manualmente il ciclo retrieve-augment-generate. Il modello resta invariato: non c’è fine-tuning, i pesi non cambiano.

Ingestion e indicizzazione

Se parti da documenti grezzi in Blob Storage, la fase di ingestion li scompone in chunk, calcola gli embedding (con un deployment di text-embedding-3-large o simile) e popola l’indice di Azure AI Search. Per abilitare la ricerca vettoriale o hybrid (parole chiave + vettori, spesso con semantic ranker) serve un indice con i campi giusti: vettore, contenuto, titolo e soprattutto un campo di URL/filepath che alimenta le citazioni.

Managed identity fra i servizi

In produzione la scelta architetturale corretta è usare Microsoft Entra managed identity al posto di API key. Il flusso richiede autorizzazioni incrociate tramite RBAC:

  • La risorsa Azure OpenAI deve poter leggere l’indice → ruolo Search Index Data Reader su Azure AI Search.
  • Azure AI Search deve poter leggere i documenti e (se indicizza in autonomia) accedere al modello di embedding → ruoli su Storage Blob Data Reader e su Azure OpenAI.

Questo triangolo OpenAI ↔ Search ↔ Storage con identity elimina i segreti dal codice ed è il pattern preferito dall’esame.

Citazioni

On Your Data restituisce nella risposta i riferimenti alle fonti (citations): ogni affermazione può essere ricondotta al documento da cui deriva. È il valore chiave in scenari regolamentati, dove serve tracciabilità e verificabilità.

RAG vs fine-tuning: quando usare cosa

Esigenza Scelta corretta
Conoscenza che cambia spesso, da citare RAG / On Your Data
Dominio con documenti specifici (policy, manuali) RAG
Imporre uno stile, tono o formato di output costante Fine-tuning
Ridurre i token di prompt per compiti ripetitivi Fine-tuning

La regola mentale: RAG cambia cosa il modello sa; il fine-tuning cambia come risponde. Il fine-tuning non aggiorna i fatti e non produce citazioni, quindi non è la risposta quando lo scenario parla di “documenti aziendali aggiornati” o “risposte verificabili con fonte”. I due approcci sono combinabili, ma per la conoscenza dinamica la leva è sempre il retrieval.

La qualità dipende dal retrieval, non solo dal modello

Un punto architetturale cruciale: se l’indice è mal configurato — chunking troppo grande, campi vettoriali assenti, semantic ranking non attivo, campo URL mancante — la risposta sarà povera anche con il modello migliore. Migliorare la qualità significa quasi sempre intervenire su ingestion, chunking e strategia di query (keyword vs vettoriale vs hybrid), non aumentare la potenza del modello.

Trappole tipiche d’esame

  • Scenario: l’azienda deve rispondere su policy interne che cambiano ogni mese e servono le fonti citate → RAG con Azure OpenAI On Your Data su Azure AI Search, non fine-tuning.
  • Scenario: vuoi che il modello produca sempre output in un formato/tono aziendale fisso → fine-tuning, non RAG.
  • Scenario: On Your Data restituisce risposte incomplete o irrilevanti → il problema è nel retrieval/indice (chunking, hybrid + semantic ranker, campi vettoriali), non nel modello: rivedi l’indice, non cambiare GPT.
  • Scenario: eliminare API key fra OpenAI, Search e Storage → managed identity + RBAC con i ruoli data-plane (Search Index Data Reader, Storage Blob Data Reader), non stringhe di connessione.
  • Scenario: le citazioni non compaiono nelle risposte → l’indice non espone un campo URL/title mappato correttamente nella configurazione della data source.