Unità 3 / 12

Generazione di risposte dalla Knowledge Base (Introduzione a RAG)

Guadagni:

  • Comprendere la logica della generazione basata sulla conoscenza (RAG) e perché riduce le allucinazioni
  • Possibilità di far sì che il modello risponda con citazione, basandosi solo sui documenti originali forniti
  • Possibilità di gestire le domande che non sono presenti nella sorgente trasferendole in sicurezza, senza inventare domande

Un modello linguistico "sa" molto, ma non conosce la politica di restituzione odierna della tua azienda, il tuo listino prezzi attuale o il tuo contratto di spedizione cambiato ieri. Peggio ancora, quando non lo sa, spesso si inventa e scrive con un tono estremamente sicuro. Questo è un difetto fatale nel servizio clienti: il modello dice "I rimborsi vengono emessi entro 30 giorni" mentre la tua polizza potrebbe essere di 14 giorni. L’approccio che colma questa lacuna si chiama RAG: Retrieval-Augmented Generation, ovvero “retrieval-augmented production”.

L'idea è semplice: il modello risponde alla domanda non dalla memoria, ma dai documenti sorgente corretti che gli vengono posti di fronte in quel momento. Innanzitutto, la parte corretta del documento rilevante per la domanda è "recupero", quindi il modello "genera" la risposta basandosi solo su quella parte. In questa unità capirai la logica di RAG e imparerai come tenere a freno il modello in modo che si attacchi solo alla fonte verificata fornita.

Nota: questa unità insegna la logica di funzionamento e il lato rapido di RAG. I sistemi di recupero automatico dei documenti su scala aziendale (database vettoriale, ecc.) richiedono un'installazione tecnica; La disciplina qui è la base affinché il sistema risponda correttamente.

Perché RAG riduce le allucinazioni?

L'allucinazione è quando il modello produce informazioni irreali come se fossero reali. Il modello è programmato per produrre una risposta che sembra “possibile” quando vede una lacuna; Non sa se è vero o no. RAG colma questa lacuna: fornisci al modello il testo effettivamente rilevante insieme alla domanda e dici "rispondi solo da qui". In questo modo il modello non ha "bisogno" di adattarsi.

Ci sono tre componenti:

  • Base di conoscenza: testi affidabili come FAQ, documenti politici, manuali di prodotto, listini prezzi.
  • Recupero: trovare il pezzo di documento contenente la risposta alla domanda e consegnarlo al modello.
  • Edizione limitata: il modello risponde con un preventivo basato solo sulla parte fornita.

Passo dopo passo: una risposta fedele alla fonte

  1. Preparare la fonte. Trova il testo su cui si baserà la risposta (policy, FAQ) in un formato chiaro e aggiornato.
  2. Incorpora la fonte nel prompt. Inserisci il testo in un tag come <source>.
  3. Scrivi la regola di lealtà. "Utilizzare solo le informazioni provenienti dalla fonte; non allontanarsi dalla fonte."
  4. Rendi obbligatoria la citazione. Lasciargli indicare su quale sezione si basa la risposta.
  5. Identificare il comportamento non legato alle risorse. Se la risposta non è nella fonte, lascia che dica "Non ho questa informazione" e trasmettila.
  6. Verificare. Conferma la risposta confrontandola con la frase originale su cui si basa.

Prompt copiabili

Richiesta di risposta basata sulla fonte sottostante:

Ruolo: sei un assistente dell'assistenza clienti. Rispondi alla domanda SOLO in base alle informazioni nel blocco <source> sottostante. Non aggiungere alcuna informazione che non sia nella fonte, indovinare o rispondere in base alle tue conoscenze generali. Aggiungi la sezione su cui fai affidamento alla fine della tua risposta nel formato "[Fonte: ...]". Se la risposta non è nella fonte, scrivi quanto segue: "Non ho informazioni definitive su questo argomento, ti trasferisco a un funzionario che può dare la risposta corretta."<source>{{ policy_or_faq_text }}</source>Domanda: {{ customer_question }}

In caso di multi-sorgente, la richiesta di mostrare su quale documento si basa:

Sono presenti più risorse numerate di seguito. Quando rispondi alla domanda, indica il numero della fonte che hai utilizzato, ad esempio [Fonte 2]. Se più di una fonte ti contraddice, dillo chiaramente e specifica che dovresti chiedere quale è più aggiornata.<sources>1) {{ source_1 }}2) {{ source_2 }}3) {{ source_3 }}</sources>Domanda: {{ customer_question }}

Prompt che gestisce in modo sicuro la domanda non di origine:

Se la risposta alla domanda si trova PARZIALMENTE nella fonte: rispondere solo alla parte coperta dalla fonte, e dire "questo dettaglio non è nella fonte" per la parte restante. Non riempire mai la parte mancante tirando a indovinare.

Prompt che traduce la risposta nella lingua del cliente, ma rimane fedele alla fonte:

Traduci l'espressione ufficiale/tecnica presente nella fonte in un linguaggio semplice che il cliente possa comprendere, ma NON modificare il significato e i valori numerici (giorno, importo, tariffa). Ad esempio, arrotondando "14 giorni di calendario" a "circa due settimane"; mantenere l'intero valore.

Prompt debole / Prompt forte

Pronto debole

Suggerimento potente

"Parlaci della nostra politica di restituzione"

Incorpora sorgente + "rispondi solo qui" + richiede preventivo

Risposta dalla memoria del modello (forse sbagliata)

Rispondi dal tuo documento attuale

Se non è nella fonte, lo inventa

Dice "Non ho queste informazioni" e le trasmette.

Può arrotondare e distorcere i numeri

Mantiene esattamente giorno/importo/tariffa

La differenza è che il forte suggerimento dà al modello un'ancora (testo sorgente) e un divieto (uscire dalla sorgente). Il modello non parla più a partire dalla memoria, ma dalla realtà che ha di fronte.

Tre mini custodie

Caso 1 – La vecchia trappola politica. "Resi accettati entro 30 giorni", ha detto il bot di un negozio mentre funzionava senza credito; Tuttavia, la società ha ridotto il termine a 14 giorni. Quando il testo della policy aggiornata viene aggiunto alla fonte nell'installazione di RAG, il bot ora risponde "14 giorni di calendario [Fonte: Policy di restituzione, articolo 2]". Le controversie sui rimborsi derivanti da false promesse sono state ripristinate.

Caso 2 – Cogliere la contraddizione. Un cliente ha chiesto informazioni sui costi di spedizione. Sia il vecchio che il nuovo listino prezzi sono stati inseriti nel sistema come fonti. Grazie al prompt multi-fonte, il modello ha detto: "Due fonti danno prezzi diversi (49 TL e 59 TL); devo confermare quello attuale" e ha trasmesso il problema all'umano. Invece di comunicare al cliente un importo errato, ha comunicato onestamente l'incertezza.

Caso 3 – Disciplina della risposta parziale. “Spedite il prodotto all’estero e chi paga i dazi doganali?” Nella domanda, la fonte ha detto solo che la spedizione è stata effettuata, non c'era nulla su chi ha pagato la tassa. La modella diceva: "Sì, la spedizione viene effettuata all'estero [Fonte: Cargo FAQ]. Tuttavia, in questo documento non è indicato chi paga i dazi doganali; ti trasferisco all'ufficiale per chiarire questo." Invece di una risposta per metà vera e per metà inventata, ha prodotto un risultato onesto e fiducioso.

Suggerimento: mantieni la versione più aggiornata e un'unica fonte di verità della tua knowledge base. Avere le stesse informazioni (es. periodo di restituzione) scritte diversamente in tre documenti separati è il più grande nemico di RAG; Il modello risponde in modo diverso a seconda di quale guarda. Prima deduplica i tuoi documenti, poi automatizzali.

Verifica: non rilassarti solo perché la fonte esiste

RAG riduce notevolmente l'allucinazione ma non la ripristina. Il modello a volte può fraintendere la fonte, confondere due frasi o trarre una “conclusione” che non è presente nella fonte. Ecco perché l'obbligo della citazione è fondamentale: apri la sezione su cui la risposta afferma di basarsi e controlla se effettivamente lo dice. Questo controllo non è negoziabile, soprattutto nelle risposte contenenti numeri (giorno, importo, tariffa) e condizioni (eccezione, condizione).

Attenzione: se la fonte stessa è sbagliata o obsoleta, RAG ripete fedelmente l'errore. Dire "il modello parla dalla fonte" non significa "il modello parla correttamente"; Sei responsabile dell'attualità e dell'accuratezza della tua fonte.

Mantenere la base di conoscenza pronta per la risposta

La qualità di RAG dipende in gran parte da come è scritto il testo di partenza. Il modello restituisce una risposta molto più accurata rispetto ai testi ben strutturati, titolati e monotematici. Consigli pratici: scrivi le tue politiche in sezioni brevi e titolate piuttosto che in paragrafi lunghi e nidificati; Lascia che ciascuna sezione risponda a una singola domanda ("Quanti giorni è il periodo di restituzione?", "Quali prodotti non possono essere restituiti?"). Mantenere le domande frequenti (FAQ) in un formato di domande e risposte rende più semplice per il modello trovare la parte giusta. Indicare valori come data, importo e tasso in modo chiaro e in un unico punto all'interno del testo; Scrivere lo stesso numero in modo diverso in sezioni diverse confonde il modello.

Un'altra abitudine importante è mantenere viva la base di conoscenza. Le politiche, i prezzi e le promozioni variano; Se la fonte non viene aggiornata, il modello continua a ripetere con sicurezza la vecchia verità. Ad ogni modifica della politica, aggiorna la fonte e chiedi nuovamente al modello alcune domande di prova sull'argomento modificato per confermare che dia la risposta corretta. Questa piccola ma regolare manutenzione impedisce al sistema RAG di "andare silenziosamente male" nel tempo.

Errori comuni

  • Dire "spiega la nostra politica" senza seppellire la fonte e affidandosi alla memorizzazione del modello.
  • Non definire il limite "risposta solo dalla fonte" e il comportamento non di origine.
  • Non richiedere un preventivo/riferimento alla fonte e lasciare la risposta non verificabile.
  • Mantenere versioni contrastanti delle stesse informazioni in più documenti nella knowledge base.
  • Consentire al modello di arrotondare/interpretare i valori numerici.
  • Dimenticarsi di aggiornare la fonte, facendo sì che il modello ripeta fedelmente le vecchie informazioni.

In sintesi

  • RAG significa che il modello produce la sua risposta dal documento sorgente corrente, piuttosto che dalla memoria.
  • Il modo più pratico per ridurre le allucinazioni: seppellire la fonte, dire "rispondi solo qui", chiedere citazione.
  • Se la risposta non è nella fonte, non si dovrebbe adattare un modello; Dovrebbe dire "Non ce l'ho" e consegnarlo.
  • Rendere il modello consapevole delle fonti contrastanti; Hai conservato esattamente i valori numerici.
  • La precisione RAG dipende dalla tempestività della fonte; Conferma sempre il preventivo.

Compito dell'applicazione

Prendi un testo effettivo della politica (reso, spedizione o iscrizione) dalla tua attività e incorporalo come fonte nel prompt RAG di base sopra. Quindi fai tre domande: (1) una domanda la cui risposta è chiara nella fonte, (2) una domanda la cui risposta non è affatto nella fonte, (3) una domanda la cui risposta è solo incompleta nella fonte. Verifica che il modello risponda correttamente, dica "Non ce l'ho" e segni onestamente rispettivamente la risposta parziale e quella mancante. Correggere il comportamento deviante rafforzando le regole di lealtà e non-risorsa nel prompt.

lista di controllo

  • [ ] Ho incorporato nel prompt la fonte corrente su cui si baserà la risposta.
  • [ ] Ho aggiunto la regola "Rispondi solo dalla fonte, non andare oltre".
  • [ ] Ho inserito un requisito di riferimento/citazione della fonte.
  • [ ] Ho definito il comportamento di delega se la risposta non è disponibile nella fonte.
  • [ ] Ho richiesto che i valori numerici fossero preservati esattamente.
  • [ ] Ho confermato la risposta dalla frase originale su cui si basa.