1. Panoramica
Last Updated: 2023-10-10
Cosa creerai
In questo codelab, utilizzerai Vertex AI Conversation e Dialogflow CX per creare, eseguire il deployment e configurare un agente virtuale per assistere le persone che vogliono donare il sangue e assicurarsi di soddisfare i requisiti di idoneità richiesti. L'agente utilizzerà dati pubblici reali e i modelli linguistici di grandi dimensioni (LLM) generativi di Google durante l'evasione di Dialogflow CX.
Quali funzionalità utilizzerai
Per completare il codelab, configurerai e utilizzerai tre funzionalità distinte:
Agenti datastore
La funzionalità Vertex AI Conversation crea uno speciale agente Dialogflow, chiamato agente datastore.
Con questa funzionalità, fornisci un URL del sito web, dati strutturati o non strutturati (datastore), poi Google analizza i tuoi contenuti e crea un agente virtuale basato su datastore e modelli linguistici di grandi dimensioni. I tuoi clienti e utenti finali possono quindi conversare con l'agente e porre domande sui contenuti. Per informazioni su questo tipo di agente, consulta la presentazione di Vertex AI Conversation.
Generatori
La funzionalità di generazione è una funzionalità di Dialogflow CX che consente agli sviluppatori di utilizzare i modelli linguistici di grandi dimensioni (LLM) generativi più recenti di Google e prompt personalizzati per generare risposte dell'agente in fase di runtime. Un generatore può gestire risposte generiche che coinvolgono conoscenze generali da un ampio set di dati di testo su cui è stato addestrato o il contesto della conversazione.
fallback generativo
La funzionalità di riserva generativa utilizza i più recenti modelli linguistici di grandi dimensioni (LLM) generativi di Google per generare risposte dell'agente virtuale quando l'input dell'utente finale non corrisponde a un intent o a un parametro per il riempimento del modulo. La funzionalità può essere configurata con un prompt di testo che indica all'LLM come rispondere. Puoi utilizzare un prompt di testo predefinito o aggiungere i tuoi prompt. 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. Se vuoi saperne di più sul fallback generativo, prova questo codelab.
Obiettivi didattici
- Come creare un agente di datastore da dati non strutturati
- Come utilizzare i gestori della conoscenza per consentire agli utenti finali di conversare con un agente virtuale sui contenuti aggiunti a un datastore.
- Come configurare un prompt di testo del generatore e renderlo contestuale utilizzando i segnaposto del prompt del generatore integrati.
- Come contrassegnare le parole come segnaposto dei prompt del generatore e associarle in un secondo momento ai parametri di sessione nell'evasione per utilizzarne i valori durante l'esecuzione.
- Come configurare un generatore per gestire le risposte che coinvolgono conoscenze provenienti da un ampio set di dati testuali e il contesto della conversazione corrente.
- Come generare un'email formale utilizzando i generatori
- Come testare l'agente e simulare le domande dei clienti che attivano le risposte generate
Che cosa ti serve
- Un progetto Google Cloud
- Un browser come Chrome
2. Abilita API
Prima di poter creare un agente datastore in Vertex AI Conversation, devi attivare le API Dialogflow e Vertex AI Search and Conversation.
Per abilitare l'API Dialogflow:
- Nel browser, vai alla pagina dei dettagli del servizio API Dialogflow.
- Fai clic sul pulsante Abilita per abilitare l'API Dialogflow nel tuo progetto Google Cloud.
Per abilitare l'API Vertex AI Search and Conversation:
- Nella console Google Cloud, vai alla console Vertex AI Search and Conversation.
- Leggi e accetta i Termini di servizio, quindi fai clic su Continua e attiva l'API.
3. Crea una nuova app di chat e un datastore per la tua app
Ora creerai una nuova app di chat per l'agente virtuale e la configurerai con un'origine dati. Lo scopo dell'agente che creerai è quello di assistere i clienti che hanno domande sull'idoneità alla donazione di sangue. Utilizzerai Australian Red Cross Lifeblood come fonte attendibile e creerai un datastore basato su dati non strutturati del sito web sull'idoneità alla donazione di sangue.
- Per creare una nuova app di chat in Vertex AI Conversation, puoi:
- Vai alla console Vertex AI Conversation, quindi fai clic su + Nuova app nella parte superiore della console.
- Vai alla console Dialogflow CX, fai clic su +Crea nuovo agente, seleziona l'opzione Genera automaticamente e poi verrà visualizzato il passaggio successivo nella console Vertex AI Conversation.
- Nella console Vertex AI Conversation, seleziona Chat come tipo di app da creare.
- Inserisci un nome dell'azienda di
Save a Life. Questo parametro viene utilizzato per definire l'azienda che il tuo agente rappresenta e l'ambito del tuo agente. - Specifica un nome dell'agente di
Blood Donation Agent. - Fai clic su Continua.
- Fai clic su Crea nuovo datastore.
- Seleziona Cloud Storage come origine dati per il datastore.
- Specifica la seguente cartella Google Cloud Storage che contiene i dati di esempio per questo codelab e tieni presente che il prefisso
gs://non è obbligatorio:cloud-samples-data/dialogflow-cx/arc-lifeblood - Seleziona Documenti non strutturati come tipo di dati da importare.
- Fai clic su Continua.
- Specifica un nome datastore di
Australian Red Cross Lifeblood Unstructured. - Fai clic su Crea per creare il datastore.
- Nell'elenco dei datastore, seleziona
Australian Red Cross Lifeblood Unstructuredappena creato. - Fai clic su Crea per creare la tua app di chat.
Complimenti! Hai finito di creare la tua app di chat basata sulla conoscenza, pronta ad aiutare i potenziali donatori, quindi prenditi un momento per festeggiare.
Tuttavia, c'è ancora del lavoro da fare per rendere l'agente accessibile ai tuoi utenti. Nella sezione successiva, utilizzerai un gestore della conoscenza per attivare le conversazioni tra l'agente e gli utenti finali in merito ai requisiti di idoneità.
4. Configurare l'agente per rispondere alle domande frequenti sull'idoneità alla donazione di sangue
Fornisci il prompt del negozio di date
Mentre il processo di raccolta dei documenti è in esecuzione in background, diamo un brand all'agente modificando il prompt del datastore.
- Dalla console Vertex AI Conversation, fai clic sul nome della tua app di chat, che ti reindirizzerà alla console Dialogflow CX per ulteriori test e personalizzazioni.
- Nella console Dialogflow CX e all'interno dell'agente, fai clic su Impostazioni agente (angolo in alto a destra della pagina), quindi vai alla scheda ML e infine apri la scheda AI generativa.

- Compila il modulo come indicato di seguito per generare il seguente prompt del datastore: Il tuo nome è
Donatee sei unchatbotutile e gentile che lavora pressoSave a life, a fictitious organization. Il tuo compito è assisterehumans with eligibility information.

Attivare il fallback generativo per l'evento di mancata corrispondenza del flusso di avvio predefinito
- Passa alla scheda Crea e apri la pagina iniziale.
- Fai clic sul gestore di eventi sys.no-match-default. A meno che la casella non sia già selezionata, attiva la funzionalità di fallback generativo.

Controlla il datastore dell'agente
Nella pagina iniziale, fai clic su Modifica datastore per esaminare le impostazioni del datastore.

Il datastore che hai creato in precedenza è già stato selezionato da Dialogflow.

Scorri verso il basso fino a Risposte dell'agente in Fulfillment. Un fulfillment è la risposta dell'agente all'utente finale. Dialogflow ha precompilato L'agente dice con il parametro $request.knowledge.answers[0], che in fase di runtime contiene la risposta migliore alla domanda dell'utente.

5. Testare l'agente
Una volta che i documenti sono disponibili e pronti per l'uso da parte dell'agente, controlla la qualità delle risposte.
Fai clic su Agente di test per aprire di nuovo il Simulatore.

Poni domande che ti aspetti di trovare nella pagina delle domande frequenti del sito web:
What age do I need to be to donate?Can pregnant women donate?I've just come back from a trip to Africa. Can I donate?How can I schedule an appointment?

Nota che le risposte vengono recuperate dal sito dell'Australian Red Cross Lifeblood. Come indicato in questa pagina, esistono età minime e massime per la donazione di sangue. L'età minima è 18 anni e l'età massima è 75 anni per i donatori alla prima donazione. Un'ulteriore prova del fatto che estraiamo informazioni dal datastore è data dalla piccola icona a forma di stella che appare nella risposta dell'agente e nella risposta JSON originale.

Infine, proviamo a mettere alla prova l'agente con una domanda che non riguarda assolutamente la donazione di sangue.
Utente: "Che tempo fa a Melbourne?"
Agente: "Mi dispiace, non posso aiutarti con questa richiesta. Come posso aiutarti con le informazioni sull'idoneità?"
Questa risposta contiene contenuti generati con l'AI e deriva dal prompt di testo creato da Dialogflow a partire dall'impostazione del connettore di conoscenza fornita in precedenza: "Il tuo nome è Donate e sei un chatbot utile e gentile di Save a Life. Il tuo compito è aiutare le persone con le informazioni sull'idoneità". Questo prompt di testo contiene il nome dell'azienda, il nome dell'agente e, soprattutto, l'ambito di competenza, che viene utilizzato da Dialogflow per generare la risposta dell'agente.
Ben fatto! Finora hai utilizzato il datastore per aiutare le persone con le domande frequenti relative alla donazione di sangue. Nella prossima parte del codelab vedremo come associare un prompt di testo del generatore allo stesso contenuto per prendere decisioni informate.
6. Configura l'agente per il quiz di idoneità
Il nostro prossimo compito è progettare l'agente per determinare l'idoneità dell'utente alla donazione di sangue. I donatori devono soddisfare requisiti rigorosi, come età, peso, condizioni preesistenti, viaggi recenti e così via. Ai fini di questo codelab, prenderemo in considerazione solo l'età e il peso. Un generatore utilizzerà i modelli linguistici di grandi dimensioni (LLM) di Google per prendere dinamicamente una decisione informata in base al contesto della conversazione e alla knowledge base.
Configurare nuove route e nuovi parametri
- Apri la pagina iniziale e fai clic su Modifica datastore.
- Modifica la risposta dell'agente esistente in
$request.knowledge.answers[0] Would you like to take the eligibility quiz to find out if you can donate blood, and start changing lives?.

- Fai clic sul pulsante Salva.
- Ora dobbiamo progettare l'agente in modo che gestisca le risposte "sì" e "no". Per iniziare, crea un intent confirmation.yes e un intent confirmation.no. Segui queste linee guida sul riutilizzo degli intent.
- Poi, nella pagina iniziale, crea una route per l'intent confirmation.yes che porta a una nuova pagina Quiz di idoneità.


- Come accennato in precedenza, semplificheremo il quiz e prenderemo in considerazione solo l'età e il peso dell'utente per determinare se è idoneo o meno alla donazione. Apri la pagina Quiz di idoneità e aggiungi un nuovo parametro del modulo age-weight, scegli
@sys.anycome tipo di entità. Fornisci"What is your age and weight?"come fulfillment del prompt iniziale. Vogliamo raccogliere sia l'età che il peso in una sola volta. Salva tutte le modifiche.

Creare e configurare il generatore di idoneità
La funzionalità di generatore è una funzionalità di Dialogflow CX che consente agli sviluppatori di utilizzare i più recenti modelli linguistici di grandi dimensioni (LLM) generativi di Google durante l'adempimento di Dialogflow CX. Generatori per generare risposte dell'agente in fase di runtime. Un generatore può gestire risposte generiche che coinvolgono conoscenze generali da un ampio set di dati di testo su cui è stato addestrato o il contesto della conversazione.
Creeremo un nuovo generatore che confronterà le informazioni fornite dall'utente (come età e peso) con i requisiti di idoneità per determinare se l'utente può donare.
- Nella console Dialogflow CX, vai alla scheda Gestisci, seleziona Generatori e fai clic su Crea nuovo.

- Poi, fornisci un nome visualizzato descrittivo e scrivi il prompt di testo. Lascia le impostazioni predefinite di controllo qualità del modello. Poi fai clic su Salva per creare il generatore.
- Nome visualizzato:
Blood Donation Eligibility - Prompt di testo:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. Weight should be above 50 Kg. The user age and weight is $last-user-utterance. Be nice and tell the user if they are eligible to donate (also tell them why not in case)
- Nome visualizzato:
Il prompt di testo viene inviato al modello generativo durante l'evasione in fase di runtime. Deve essere una domanda o una richiesta chiara affinché il modello possa generare una risposta soddisfacente. Puoi utilizzare segnaposto speciali per i prompt del generatore integrato nel prompt di testo:
$conversationLa conversazione tra l'agente e l'utente, escluso l'ultimo messaggio dell'utente.$last-user-utteranceL'ultima frase dell'utente.
Il prompt di testo che hai configurato prevede che l'utente fornisca età e peso in un unico turno conversazionale (`$last-user-utterance`).
Utilizza il generatore in evasione e configura tutti i parametri richiesti
- Nella pagina Quiz di idoneità, aggiungi un nuovo percorso che si verificherà quando tutti i parametri saranno stati compilati. Inserisci il requisito della condizione
$page.params.status = "FINAL"e fai clic su Salva.

- Vai alla sezione Generatori del riquadro Fulfillment ed espandila. Poi, fai clic su Aggiungi generatore e seleziona il generatore Idoneità alla donazione di sangue. Dopo aver selezionato il generatore, devi definire il parametro di output che conterrà il risultato del generatore dopo l'esecuzione.

- Utilizza il parametro di output nella risposta dell'agente e salva l'itinerario. Ora è tutto pronto per il test.

7. Testare di nuovo l'agente
Fai clic su Agente di test per aprire di nuovo il simulatore.

Nel Simulatore, avvia una nuova conversazione con l'agente. Per prima cosa, chiedi informazioni sui requisiti di età e poi procedi con il quiz di idoneità. Testa prima il percorso "idoneo", quindi inserisci un'età compresa tra 18 e 75 anni e un peso superiore a 50 kg.

Quindi, verifica che il controllo dell'idoneità non vada a buon fine quando uno o entrambi i requisiti non vengono soddisfatti.

Ottimo, il generatore funziona come previsto. O no? Che cosa succede se l'utente fornisce l'età ma non il peso (o viceversa)?

8. Ottimizzazione dei prompt del generatore
La raccolta di età e peso in una sola volta non sembra funzionare a meno che non vengano forniti entrambi i dati. Dovremmo invece creare un modulo che raccolga entrambi i valori come parametri di entità. Per rendere il prompt contestuale a tutti i requisiti di idoneità (come età e peso), possiamo utilizzare i segnaposto aggiungendo un simbolo $ prima della parola. In un secondo momento assoceremo questi segnaposto del prompt del generatore ai parametri di sessione nell'evasione e verranno sostituiti dai valori dei parametri di sessione durante l'esecuzione.
- Apri la pagina Quiz di idoneità e aggiungi due parametri del modulo separati: uno per il peso e uno per l'età. Scegli
@sys.number-integercome tipo di entità e seleziona i parametri richiesti. Fornisci i completamenti del prompt iniziale, ad esempioHow old are you?eWhat is your correct weight?. Salva tutte le modifiche.

- Prima di poter modificare il prompt di testo del generatore, poiché aggiungeremo due nuovi segnaposto personalizzati, dobbiamo prima rimuovere il generatore dal completamento del percorso. Fai clic su Salva.

- Vai alla scheda Gestisci, seleziona Generatori e aggiorna il prompt di testo del generatore Idoneità alla donazione di sangue con:
Check the users eligibility against the following criteria: the minimum age is 18 and the maximum age is 75. The weight must be at least 50 kg. The user is $age years old and weighs $weight Kg. Craft an email and politely explain to the user if they're eligible to donate and if not why.. Fai clic su Salva.
Tieni presente che non abbiamo solo reso il prompt di testo contestuale ai parametri del modulo relativi a età e peso, ma abbiamo anche modificato l'ultima frase per poter generare un'email formale all'utente che contenga il risultato ufficiale del quiz di idoneità.

- Nella pagina Quiz di idoneità, seleziona l'itinerario ed espandi la sezione Generatori del riquadro Esecuzione. Poi, fai clic su Aggiungi generatore e seleziona il generatore di idoneità alla donazione di sangue. Dopo aver selezionato il generatore, devi associare i nuovi segnaposto del prompt ai rispettivi parametri di sessione. Inoltre, devi reimpostare il parametro di output. Fai clic su Salva.

- Testa di nuovo l'agente. Il controllo dell'idoneità ora tiene conto sia dell'età che del peso e la formulazione è cambiata da un tono colloquiale a una risposta più educata, pronta per essere inviata senza alcun potenziale intervento umano.


9. Complimenti
Complimenti per aver completato questo codelab.

Oggi abbiamo esaminato i generatori nel contesto dei quiz di idoneità. Hai visto che i generatori utilizzano gli LLM per generare le risposte degli agenti e che, se supportati da una knowledge base, possono anche prendere decisioni ben informate. Sicuramente esistono molti altri casi d'uso che possono essere implementati sfruttando generatori e datastore e non vediamo l'ora di conoscerli.
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:
- Per evitare addebiti Google Cloud non necessari, utilizza la console Google Cloud per eliminare il progetto se non ti serve.
- Se hai utilizzato un progetto Google Cloud esistente, elimina le risorse che hai creato per evitare addebiti sul tuo account. Per saperne di più, consulta i passaggi per eliminare un'app.
- Se vuoi disabilitare le API per Vertex AI Conversation e Dialogflow, vai alla pagina dei dettagli del servizio API Discovery Engine, fai clic su Disabilita API e conferma, quindi vai alla pagina dei dettagli del servizio API Dialogflow, fai clic su Disabilita API e conferma.
Scopri di più
Continua a scoprire l'AI conversazionale e l'AI generativa con queste guide e risorse:
- Documentazione di Dialogflow CX
- Introduzione a Vertex AI Conversation
- Creare e utilizzare un agente datastore
- Documentazione di Vertex AI Conversation
- AI generativa in Google Cloud
Licenza
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.