1. Panoramica
Ultimo aggiornamento: 2023-08-07
Cosa creerai
In questo codelab creerai, eseguirai il deployment e configurerai un semplice agente virtuale in Dialogflow CX per aiutare i subacquei in viaggio con le prenotazioni di gruppo e i charter privati. L'agente virtuale utilizzerà l'AI generativa e i modelli linguistici di grandi dimensioni (LLM) generativi più recenti di Google per generare le risposte dell'agente virtuale.
Cosa imparerai a fare
- Come abilitare le API pertinenti
- In che modo Dialogflow precompila automaticamente i valori dei parametri del modulo della pagina dai parametri intent
- Come configurare i gestori di eventi in Dialogflow
- Come attivare il fallback generativo nei gestori di eventi no-match utilizzati nei flussi e durante il riempimento dei parametri
- Come configurare il tuo prompt di testo per gestire situazioni conversazionali di base e specifiche dell'agente
- Come scrivere descrizioni di intent e parametri efficaci per generare gestori di riprompt per i parametri obbligatori (oltre ai riprompt definiti dall'utente)
- Come testare l'agente e simulare le domande dei clienti che attivano il fallback generativo
Che cosa ti serve
- Un progetto Google Cloud
- Un browser come Chrome
2. Preparazione
Prima di poter iniziare a utilizzare la funzionalità di fallback generativo in Dialogflow CX, devi abilitare l'API Dialogflow.
Abilita l'API Dialogflow utilizzando la console Google Cloud
- Apri la console Google Cloud nel browser.
- Nella console Google Cloud, vai alla libreria di API per sfogliare le API e i servizi che possono essere abilitati.
- Utilizza la barra di ricerca nella parte superiore della pagina Libreria API, cerca
Dialogflow APIe poi fai clic sul servizio risultante. - Fai clic sul pulsante Abilita per abilitare l'API Dialogflow nel tuo progetto Google Cloud.
Utilizzo di gcloud CLI (alternativa)
In alternativa, l'API può essere abilitata utilizzando il seguente comando gcloud:
gcloud services enable dialogflow.googleapis.com
Se l'API è stata abilitata correttamente, dovresti visualizzare un messaggio simile al seguente:
Operation "operations/..." finished successfully.
Ottieni il codice
Non creerai l'agente virtuale da zero, ma ti forniremo un agente che dovrai ripristinare dalla console Dialogflow CX e poi migliorare.
Per scaricare il codice sorgente:
- Apri una nuova scheda del browser, vai al repository dell'agente e clonalo da una riga di comando.
- L'agente iniziale è stato esportato come pacchetto JSON. Decomprimi il file, esamina le impostazioni dell'agente, dai un'occhiata alla definizione del flusso
Liveaboards.jsone infine sfoglia le pagine, gli intent e le entità del flusso.
3. Crea un nuovo agente
Apri la console Dialogflow
Utilizzerai la console Dialogflow CX insieme al tuo progetto Google Cloud per eseguire i passaggi rimanenti di questo codelab.
- Nel browser, vai alla console Dialogflow CX.
- Seleziona il progetto Google Cloud che vuoi utilizzare o creane uno nuovo.
- Dovresti visualizzare un elenco di agenti nella console Dialogflow CX.
Se è la prima volta che utilizzi Dialogflow CX, consulta la documentazione di Dialogflow CX per ulteriori informazioni sulla configurazione del progetto e delle impostazioni in base alle tue esigenze.
Crea un nuovo agente Dialogflow CX
- Per ripristinare l'agente scaricato dal repository GitHub, devi crearne uno nuovo. Nella console Dialogflow CX, fai clic su Crea nuovo agente nell'angolo in alto a destra della pagina.

- Seleziona l'opzione Crea il tuo agente.

- Compila il modulo con le impostazioni dell'agente riportate di seguito e fai clic su Crea per creare l'agente.
- Come nome visualizzato scegli:
Divebooker - Come posizione, scegli:
us-central1 - Seleziona il fuso orario che preferisci
- Seleziona
en - Englishcome lingua predefinita
- Dialogflow aprirà automaticamente l'agente. Non abbiamo ancora finito.
Ripristinare l'agente Divebooker
- Torna alla pagina dell'elenco degli agenti e individua l'agente che hai appena creato. Fai clic sull'opzione
e poi sul pulsante Ripristina. - Seleziona l'opzione Carica e poi rilascia o seleziona il file ZIP che hai scaricato in precedenza dal repository GitHub.
- Fai clic sul pulsante Ripristina per importare l'agente che abbiamo fornito.

Ben fatto! Hai finito di creare l'agente virtuale per le prenotazioni di immersioni, pronto ad aiutare i tuoi clienti. Nella sezione successiva, lo testerai e vedrai quanto è bravo a rispondere alle domande degli utenti e ad assistere con le richieste di prenotazione.
4. Testare l'agente
Dialogflow fornisce un simulatore integrato per chattare con i tuoi agenti e scoprire bug. Per ogni turno, puoi verificare i valori corretti per l'intent attivato, la risposta dell'agente, la pagina attiva e i parametri di sessione.
Testeremo alcuni scenari e per ognuno esamineremo il motivo per cui l'agente fornisce una determinata risposta. Iniziamo dal primo.
Intenzione non risolta
- Nella console Dialogflow e all'interno dell'agente, fai clic su Test Agent (Testa agente) per aprire il simulatore.

- Digita un saluto per l'agente, ad esempio
Hello, e chiediwhat is a liveaboard?. La domanda non corrisponde ad alcun intento, viene visualizzato un prompt generico come "Mi dispiace, non so come aiutarti". Puoi verificare che l'evento integrato sys.no-match-default sia stato richiamato esaminando la risposta originale nel simulatore.

Scorri verso il basso quasi fino alla fine della risposta JSON. Tieni presente che, quando cerca un intent corrispondente, Dialogflow rileva che si tratta di NO_MATCH e genera un evento di mancata corrispondenza.

- Passa alla scheda Crea e apri la pagina iniziale del flusso Liveaboards.

Per impostazione predefinita, ogni flusso ha gestori di eventi per gli eventi integrati Nessuna corrispondenza e Nessun input. Questi gestori di eventi vengono creati automaticamente quando crei un flusso e non possono essere eliminati.
- Fai clic sul gestore di eventi sys.no-match-default e scorri verso il basso fino alla sezione Risposte dell'agente. Dialogflow fornisce un elenco di risposte alternative, ma puoi anche definire diversi tipi di messaggi di risposta per fornire all'utente finale più di semplici risposte di testo.

Passiamo ora al percorso ideale.
Il percorso ideale
Nel secondo caso, fingi di essere un subacqueo che vuole prenotare una crociera subacquea per un gruppo di 12 persone alle Isole Galapagos il prossimo anno a luglio.
- Nel riquadro Simulatore, fai clic sull'icona Reimposta per avviare una nuova conversazione con l'agente.


- Comunica all'agente che vuoi prenotare un volo charter per le isole Galapagos e fornisci i dettagli del viaggio. Non è necessario utilizzare gli stessi prompt riportati di seguito, sperimenta!

- Apri la pagina iniziale e fai clic sulla route head.send.group.request. Scorri verso il basso fino alla sezione Transizione, che indica a Dialogflow la pagina a cui passare quando viene trovata una corrispondenza con questo intent.

- Chiudi la definizione di Percorso ed espandi la pagina Raccogli ulteriori informazioni. Nota l'inserimento della voce e l'elenco dei parametri.

Per ogni pagina in Dialogflow CX puoi definire un modulo, ovvero un elenco di parametri da raccogliere dall'utente finale per la pagina. Tieni presente che l'agente non ha chiesto la destinazione del viaggio perché l'abbiamo passata come parte dell'input iniziale e destination è anche un parametro di intent. Quando una pagina diventa inizialmente attiva e durante il suo periodo di attività, qualsiasi parametro del modulo con lo stesso nome di un parametro di intent viene impostato automaticamente sul valore del parametro di sessione e il prompt corrispondente viene ignorato.
- Passa alla scheda Gestisci e fai clic sull'intent head.send group request nella sezione Intent. Esamina le frasi di addestramento fornite per questo intent e le parti annotate delle frasi di addestramento.

- Considera la frase di addestramento "Devo organizzare un viaggio in Costa Rica per 15 subacquei". "Costa Rica" è annotato con destination e "15" con number-of-guests. Quando annoti parti di una frase di addestramento, Dialogflow riconosce che queste parti sono solo esempi di valori effettivi che verranno forniti dagli utenti finali in fase di runtime. Per questo motivo, per l'input iniziale "Offrite charter per le isole Galápagos?" Dialogflow ha estratto il parametro di destinazione da "Isole Galápagos".
Successivamente, esamineremo cosa succede se non forniamo all'agente un input valido quando gli viene chiesto di compilare un parametro del modulo.
Input non valido
- Nel riquadro Simulatore, fai clic sull'icona Reimposta per avviare una nuova conversazione con l'agente.
- Esprimi l'intenzione di effettuare una prenotazione di gruppo, ma questa volta non dire all'agente dove vuoi andare e quando ti viene chiesta una destinazione, rispondi con un valore casuale che non sia Costa Rica, Galapagos o Messico.

- Nella scheda Gestisci, fai clic su Tipi di entità nella sezione Risorse. Noterai due schede: nella scheda Sistema puoi trovare le entità di sistema attualmente utilizzate dal tuo agente. La scheda Personalizzato fornisce l'elenco delle entità personalizzate create per la corrispondenza dei dati specifici di questo agente.

- Fai clic sull'entità destinazione per scoprire a quali valori corrisponde. "Europa" non è una delle voci e non è nemmeno un sinonimo.
- Nel diagramma di flusso, espandi la pagina Raccogli ulteriori informazioni che contiene i parametri del modulo. Fai clic sul parametro destinazione.
- Nel pannello dei parametri, scorri verso il basso fino alla sezione Gestori eventi di richiesta di riprova, quindi fai clic sul gestore eventi Nessuna corrispondenza predefinita.
Questo gestore di eventi a livello di parametro è specificamente progettato per gestire l'input non valido dell'utente finale durante la compilazione del modulo. Poiché "Europa" è un input imprevisto, è stato richiamato un evento sys.no-match-default ed è stato chiamato il gestore di ripromozione corrispondente definito per questo evento. La sezione L'agente dice elenca due messaggi di richiesta alternativa.

Ottimo! Questi scenari di test rappresentano scenari comuni che l'agente deve gestire in modo appropriato. Molto spesso gli utenti fanno domande a cui i bot non sono in grado di rispondere o fanno richieste che i bot non sono in grado di soddisfare. È molto complesso progettare per la coda lunga, ovvero per i percorsi meno battuti che la maggior parte degli utenti seguirà. Pensa a tutte le cose che possono andare storte in una conversazione e a tutti i percorsi imprevisti o non supportati che gli utenti potrebbero intraprendere.
I progressi nel riconoscimento vocale automatico (ASR) ci consentono di sapere quasi sempre esattamente cosa hanno detto gli utenti. Tuttavia, determinare l'intenzione degli utenti è ancora una sfida. Spesso le espressioni non possono essere comprese in modo isolato, ma solo nel contesto. Nella prossima sezione di questo codelab esploreremo come i più recenti modelli linguistici di grandi dimensioni (LLM) generativi di Google possono aiutarti a rimettere in carreggiata il dialogo e a far progredire la conversazione.
5. Attiva il fallback generativo
Che cos'è la funzionalità di fallback generativo?
Il fallback generativo è una funzionalità di Dialogflow CX che utilizza i modelli linguistici di grandi dimensioni (LLM) di Google per generare risposte dell'agente virtuale.
In che modo può essere utile?
Tra i casi d'uso chiave, ci sono una serie di richieste degli utenti piuttosto comuni, come ripetere ciò che ha detto l'agente nel caso in cui l'utente non abbia capito, mettere in attesa la chiamata quando l'utente lo chiede e riassumere la conversazione. Nel primo test che abbiamo eseguito, l'agente non è riuscito a rispondere alla domanda "Che cos'è una liveaboard?" perché non abbiamo creato un intent per questa domanda e non abbiamo progettato il flusso per gestire questo tipo di domande generiche relative a immersioni subacquee e liveaboard.
Anche con intent robusti, c'è ancora margine di errore. Gli utenti potrebbero uscire dal copione rimanendo in silenzio (errore Nessun input) o dicendo qualcosa di inaspettato (errore Nessuna corrispondenza). Sebbene prevenire gli errori sia meglio che gestirli dopo che si sono verificati, gli errori non possono essere evitati del tutto. I prompt generici come "Mi dispiace, non so come aiutarti" o soluzioni simili minime e praticabili spesso non sono sufficienti. I prompt di errore devono essere ispirati al principio di cooperazione, secondo cui una comunicazione efficace si basa sul presupposto che esista una corrente di cooperazione tra i partecipanti alla conversazione.
Nella sezione successiva vedremo come configurare la funzionalità di fallback generativo per aumentare la copertura degli intent e semplificare la gestione degli errori per una migliore esperienza cliente.
Abilita il fallback generativo per l'evento di mancata corrispondenza dell'intero flusso
Puoi attivare il fallback generativo nei gestori di eventi senza corrispondenza utilizzati nei flussi, nelle pagine o durante il riempimento dei parametri. Quando il fallback generativo è attivato per un evento senza corrispondenza, ogni volta che l'evento viene attivato, Dialogflow tenta di produrre una risposta generata che verrà comunicata all'utente. Se la generazione della risposta non va a buon fine, verrà emessa la normale risposta prescritta dell'agente.
Puoi attivare il fallback generativo nei gestori di eventi di mancata corrispondenza dell'agente, che possono essere utilizzati nel completamento del flusso, della pagina o dei parametri.
Inizieremo ad attivare il fallback generativo per l'intero flusso Liveaboards dell'evento predefinito senza corrispondenze.
- Espandi la Pagina iniziale del flusso.
- Fai clic su sys.no-match-default in Gestori di eventi.
- Seleziona Attiva fallback generativo nella sezione Risposte dell'agente, poi fai clic su Salva.


Attivare il fallback generativo su eventi specifici senza corrispondenza
Ora vogliamo attivare il fallback generativo per gestire gli input non validi quando l'agente chiede il numero di passeggeri:
- Apri la pagina Raccogli ulteriori informazioni che contiene i parametri del modulo. Fai clic sul parametro number-of-guests.
- Vai al gestore di eventi Nessuna corrispondenza di destinazione (scorri verso il basso fino alla sezione Gestori di eventi di richiesta, quindi fai clic sul gestore di eventi Nessuna corrispondenza predefinita).

- Seleziona Attiva fallback generativo in Risposte dell'agente.

- Infine, fai clic su Salva.
- Ora ripeti esattamente i passaggi per attivare il fallback generativo per destination e email-address.
Ottimo! Hai attivato il fallback generativo per gestire intent imprevisti e valori dei parametri non validi. Successivamente, vedremo come configurare la funzionalità di fallback generativo con un prompt di testo che indica all'LLM come rispondere.
6. Configurare il fallback generativo
La funzionalità di riserva generativa passa una richiesta a un modello linguistico di grandi dimensioni per produrre la risposta generata. La richiesta assume la forma di un prompt di testo che è un mix di linguaggio naturale e informazioni sullo stato attuale dell'agente e della conversazione. La funzionalità può essere configurata in diversi modi:
- Scegli un prompt specifico (già definito) da utilizzare per la generazione della risposta.
- Definisci un prompt personalizzato.
Scegliere un prompt già definito
- Nella console Dialogflow CX, fai clic su Impostazioni agente.

- Vai alla scheda ML e poi alla scheda secondaria AI generativa.

La funzionalità è fornita con due prompt di modelli, il modello Predefinito (non visibile) e il modello Esempio che ti guida nella scrittura dei tuoi prompt.
- Seleziona il modello Esempio e fai clic sul pulsante Modifica sul lato destro del menu a discesa per esaminarlo.
Con il prompt predefinito, l'agente virtuale può gestire situazioni conversazionali di base. Ad esempio:
- Saluta l'utente e congedati.
- Ripeti ciò che ha detto l'agente nel caso in cui l'utente non abbia capito.
- Mantieni la linea quando l'utente lo richiede.
- Riassumi la conversazione.
Proviamo a definire un prompt di testo specifico per l'agente Divebooker.
7. Definisci il tuo prompt
- Copia il prompt riportato di seguito e incollalo nell'area Prompt di testo.
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
- Seleziona Salva come nuovo modello per memorizzare il nuovo prompt come nuovo modello (scegli un nuovo nome per il modello) e fai clic su Salva nell'angolo in basso a destra del riquadro.

- Per rendere effettivamente attivo il prompt appena creato, devi anche salvare le impostazioni.

Quando scrivi il tuo prompt di testo, sii chiaro, conciso e prescrittivo. Il modo in cui viene creato il prompt per l'LLM può influire notevolmente sulla qualità della risposta dell'LLM. I LLM sono addestrati a seguire le istruzioni, quindi più il prompt assomiglia a un'istruzione precisa, migliori saranno i risultati che otterrai. Crea un prompt e, in base ai risultati ottenuti, esegui l'iterazione per migliorarlo.
Per creare prompt efficaci, segui queste best practice:
- Fornisci una descrizione chiara e concisa dell'attività che vuoi che l'LLM svolga. Niente di più, niente di meno. Mantienila completa e breve.
- Inoltre, il prompt deve essere specifico e ben definito, evitando un linguaggio vago o ambiguo.
- Suddividi le attività complesse in parti più piccole e più gestibili. Suddividendo l'attività in passaggi più piccoli, puoi aiutare il modello a concentrarsi su una cosa alla volta e ridurre la probabilità di errori o confusione.
- Per migliorare la qualità delle risposte, aggiungi esempi nel prompt. L'LLM apprende contestualmente dagli esempi come rispondere.
Quando crei un prompt, oltre a una descrizione in linguaggio naturale del tipo di contesto da generare, puoi utilizzare anche i seguenti segnaposto:
$conversationLa conversazione tra l'agente e l'utente, escluso l'ultimo messaggio dell'utente. Puoi adattare i prefissi di svolta (ad es. "Umano", "AI" o "Tu", "Agente") nel prompt di testo$last-user-utteranceL'ultima frase dell'utente.$flow-descriptionLa descrizione del flusso attivo.$route-descriptionsLe descrizioni delle intenzioni delle intenzioni attive.
Ora che abbiamo un prompt di testo iniziale, l'attività successiva consiste nell'assicurarsi che il flusso e gli intent abbiano descrizioni chiare.
8. Aggiungere descrizioni del flusso e dell'intent
Aggiungi la descrizione del flusso
- Per aggiungere una descrizione al flusso Liveaboards, accedi alle impostazioni del flusso passando il mouse sopra il flusso nella sezione Flussi.

- Fai clic sul pulsante delle opzioni
. - Seleziona Impostazioni flusso e aggiungi la seguente descrizione (o una simile):
search, find and book liveaboards.

- Fai clic su Salva.
Aggiungi la descrizione dell'intent
- Ora aggiungiamo una descrizione appropriata all'intent head.send.group.request. Passa alla scheda Gestisci, scegli Intent nella sezione Risorse e seleziona l'intent head.send.group.request.
- Aggiungi la seguente descrizione:
assist users with group or full charter reservations. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands
Tieni presente che la descrizione contiene informazioni importanti, come il numero minimo e massimo di passeggeri consentiti su una barca. Tienilo a mente.
- Fai clic su Salva.
Questo è tutto. Hai attivato il fallback generativo nei gestori di eventi senza corrispondenza per il completamento del flusso e dei parametri. Hai anche definito il tuo prompt di testo che la funzionalità di fallback generativo passa a un modello linguistico di grandi dimensioni per produrre risposte generative.
Nella sezione successiva, testerai di nuovo l'agente per vedere come può rispondere alle stesse domande difficili di prima.
9. Testare di nuovo l'agente
Ora che hai configurato e attivato il fallback generativo nell'agente virtuale, puoi porre domande simili e vedere come gestisce le risposte.
Fai clic su Agente di test per aprire di nuovo il simulatore.

Chiedi di nuovo all'agente informazioni sulle crociere e sulle immersioni in crociera. Da ora in poi, nota come ogni dialogo ha messaggi definiti dall'utente e risposte generate evidenziate nei riquadri rossi.

Hai ricevuto una risposta informativa e utile anziché un invito generico? Bene. Dopo aver fornito una descrizione chiara e concisa delle attività che vuoi che l'agente svolga (nel prompt di testo e nella descrizione del flusso), il tuo bot è ora molto più intelligente quando si tratta di rispondere a domande dettagliate senza creare intent specifici. Il cliente apprezzerà il fatto che l'agente possa fornirgli una risposta più informata anziché una risposta non azionabile.
Non essere timido e metti alla prova l'agente. Chiedigli se può aiutarti a trovare un corso di immersione subacquea, dato che non hai ancora un brevetto.

Esatto, al momento non abbiamo progettato l'agente per assistere con i corsi di immersione. Come fa l'agente a saperlo? Nel prompt di testo abbiamo descritto chiaramente cosa può e non può fare l'agente. "Al momento non puoi aiutare i clienti con immersioni e corsi a terra. Non puoi consigliare negozi di immersione e resort per immersioni locali"
Ora esegui nuovamente il test dello scenario felice e arricchisci la conversazione. Vediamo come è cambiata l'esperienza.


Quando Dialogflow trova una corrispondenza con un intent o tenta di raccogliere un parametro in base alla progettazione del flusso, mostra gli adempimenti definiti in fase di progettazione. Quando l'utente esce dal copione chiedendo un riepilogo dei dettagli del viaggio o offrendosi di fornire il proprio numero di telefono, entra in gioco la funzionalità di fallback generativo.
Bene! Hai ritestato lo scenario ideale e spero che tu abbia avuto una conversazione piacevole e naturale con l'agente, il più simile possibile all'esperienza che avresti con un operatore.
Purtroppo, le conversazioni possono andare male. Facciamo un altro test. Questa volta, quando ti viene chiesto il numero di ospiti, indica un numero superiore a 15.


Ci sono un paio di cose da sottolineare:
- Perché 20 non è un numero valido? Perché abbiamo impostato un limite al numero di ospiti consentiti nella descrizione dell'intent: "L'agente raccoglie informazioni come il periodo di partenza, la destinazione, il numero di ospiti ***(minimo 4, massimo 15 persone)****, i dati di contatto*" . La risposta generativa restituita dal LLM "Siamo spiacenti, possiamo assistere solo con prenotazioni di gruppo fino a 15 ospiti" è perfettamente congruente con le limitazioni che abbiamo imposto al numero di ospiti. Per rafforzare ulteriormente questo aspetto, il numero di ospiti è un'entità RegExp personalizzata che corrisponde solo ai numeri inclusi nell'intervallo 4-15.
- La conversazione continua perché alla fine l'utente è ancora interessato a ricevere un'offerta per 15 subacquei. Capita spesso durante le conversazioni naturali, cambiamo idea molto spesso. Nota come l'agente collabora e indirizza delicatamente l'utente verso il percorso corretto.
La progettazione della conversazione prevede la creazione di una metà di un dialogo, nella speranza che sia abbastanza solida da consentire a chiunque di intervenire e recitare l'altra metà. Quando progettano per la coda lunga, gli sviluppatori devono concentrarsi su ciò che l'utente potrebbe dire in ogni passaggio del dialogo per definire percorsi, gestori e parametri. Per questo motivo abbiamo aggiunto la funzionalità di fallback generativo a Dialogflow CX: per consentire agli sviluppatori di concentrarsi sui principi di progettazione delle conversazioni e meno sui dettagli di implementazione, in modo da offrire agli utenti esperienze conversazionali solide.
Facciamo un altro test, questa volta mettendo di nuovo alla prova il bot con un luogo che non è presente nell'elenco delle destinazioni disponibili, come le Maldive. Poi daremo una rapida occhiata a cosa succede dietro le quinte.

Tieni presente che, poiché abbiamo attivato anche il fallback generativo per l'evento no-match per il parametro destinazione, viene inviata una richiesta a un modello linguistico di grandi dimensioni per produrre la risposta generata. Le risposte predefinite regolari (in L'agente dice) vengono ignorate.
Le caselle di testo riportate di seguito ti aiuteranno a capire meglio in che modo i segnaposto contribuiscono a definire la richiesta inviata al modello linguistico di grandi dimensioni.
Questo è il prompt di testo personalizzato che abbiamo configurato in Dialogflow con i segnaposto evidenziati in grassetto:
You are a friendly agent that likes helping traveling divers.
You are under development and you can only help
$flow-description
At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts.
Currently you can $route-descriptions
The conversation between the human and you so far was:
${conversation USER:"Human:" AGENT:"AI"}
Then the human asked:
$last-user-utterance
You say:
Nella casella di testo sottostante ho incluso l'input ricevuto dal modello linguistico di grandi dimensioni e l'output che contiene la risposta generata che verrà restituita all'utente:
llm_input: You are a friendly agent that likes helping traveling divers. You are under development and you can only help search, find and book liveaboards. At the moment you can't help customers with land-based diving and courses. You cannot recommend local dive shops and diving resorts. Currently you can assist users who are looking for a group reservation or a full charter. Initially collect travel details including departure period, destination, number of guests (min 4 max 15 people), contact details. The destination must be one of the following in the Pacific: Costa Rica, Mexico, Galapagos Islands. The conversation between the human and you so far was: Human: Hi, my name's Alessia AI Hi Alessia, what can I help you with today? Human: Can you help me find a nice boat for myself and my family? AI To assist you with that I need to collect the details of your travel and then we'll get back to you with an offer shortly. Where would you like to go? We can organize a charter in Costa Rica, Galapagos Islands and several locations around Mexico Then the human asked: The kids want to go to the Maldives llm_output: You say: I'm sorry Alessia, we can only help you with liveaboards in Costa Rica, Galapagos Islands and several locations around Mexico.
Analogamente al test eseguito in precedenza, la risposta inviata all'utente viene generata dal modello e si basa sulle informazioni che abbiamo fornito nell'ambito della descrizione dell'intent: "La destinazione deve essere una delle seguenti nel Pacifico: Costa Rica, Messico, isole Galapagos".
Modificare l'elenco delle frasi vietate
Il fallback generativo può essere configurato in diversi modi:
- Scegli un prompt specifico (già definito) da utilizzare per la generazione della risposta.
- Definisci un prompt personalizzato.
- Modificare l'elenco delle frasi vietate.
Finora abbiamo esaminato i primi due modi. Esploriamo la terza.
- In Impostazioni agente, vai alla scheda ML e poi alla scheda secondaria AI generativa.
- Nella sezione Frasi vietate, aggiungi le seguenti frasi all'elenco:
Dangerous countryHateful placeMedical assistance- Fai clic su Salva.
- Fai clic sull'icona Reimposta e ripeti il test dell'ultimo scenario. Invece di fornire una bellissima destinazione per le immersioni in tutto il mondo, inserisci una delle frasi vietate.

Il prompt e la risposta generata vengono controllati rispetto all'elenco di frasi vietate. Le frasi vietate sono frasi vietate per l'AI generativa. Se l'input include frasi vietate o ritenute non sicure, la generazione non andrà a buon fine e verrà emessa la normale risposta prescritta (in Agente dice nello stesso completamento).
Ottimo lavoro. Abbiamo trattato una serie di situazioni conversazionali in cui le risposte generative possono fare davvero la differenza. Continua a sperimentare.
10. Complimenti
Complimenti per aver completato il codelab. È ora di rilassarsi.

Hai creato correttamente un agente virtuale e hai attivato il fallback generativo nei gestori di eventi no-match utilizzati nei flussi e durante il riempimento dei parametri.
La funzionalità di fallback generativo, combinata con descrizioni di flusso e intent ben definite, può fornire risposte specifiche e collaborative dell'agente anziché prompt generici come "Mi dispiace, non so come aiutarti" o "Mi dispiace, hai inserito un'opzione non valida". I prompt di errore generati dai modelli linguistici di grandi dimensioni possono indirizzare delicatamente gli utenti verso percorsi di successo o reimpostare le loro aspettative su ciò che è e non è possibile.
Non esitare a provare altre situazioni conversazionali ed esplorare le altre funzionalità disponibili relative a Dialogflow CX e all'AI generativa.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo codelab, puoi eseguire la seguente pulizia:
- Vai alla console Dialogflow CX ed elimina tutti gli agenti che hai creato.
- Nella console Google Cloud, vai alla pagina API e servizi e disattiva l'API Dialogflow.
Further reading
Continua a scoprire l'AI conversazionale e l'AI generativa con queste guide e risorse:
- Documentazione di Dialogflow CX
- Documentazione per il fallback generativo
- AI generativa in Google Cloud
- Introduzione a PaLM
Licenza
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.
