Crea modelli di conversazione

Un modello di conversazione definisce cosa possono dire gli utenti alle tue Azioni e il modo in cui queste rispondono agli utenti. I principali componenti di base del tuo modello di conversazione sono intent, tipi, scene e messaggi. Dopo aver richiamato una delle azioni, l'Assistente Google assegna l'utente a quell'azione e l'azione inizia una conversazione con l'utente, in base al modello di conversazione, che consiste in:

  • Richieste utente valide: per definire cosa possono dire gli utenti alle tue azioni, devi creare una raccolta di intent che aumentano l'NLU dell'assistente, in modo che possa comprendere le richieste specifiche per le tue azioni. Ogni intent definisce frasi di addestramento che descrivono cosa possono dire gli utenti per soddisfare tale intento. La NLU dell'assistente espande queste frasi di addestramento in modo da includere frasi simili e l'aggregazione di queste frasi genera il modello linguistico dell'intent.

  • Logica di azione e risposte: le scene elaborano gli intent, eseguono la logica richiesta e generano prompt per tornare all'utente.

Figura 1. Un modello di conversazione è costituito da intent, tipi, scene e prompt che definiscono la tua esperienza utente. Gli intent idonei per le chiamate sono validi anche per la corrispondenza nelle conversazioni.

Definisci richieste utente valide

Per definire cosa possono dire gli utenti alle tue azioni, utilizza una combinazione di intent e tipi. Gli intent e i tipi di utenti ti consentono di aumentare l'NLU dell'assistente con i tuoi modelli linguistici. Gli intent e i tipi di sistema ti consentono di sfruttare modelli linguistici integrati e rilevamento di eventi come gli utenti che vogliono uscire dall'Azione o l'assistente che non rileva alcun input.

Creare intenzioni dell'utente

Gli intent utente ti consentono di definire frasi di addestramento personalizzate che definiscono ciò che gli utenti potrebbero dire in relazione alle tue Azioni. La NLU dell'assistente usa queste frasi per addestrarsi a capire cosa dicono gli utenti. Quando gli utenti pronunciano qualcosa che corrisponde al modello linguistico dell'intenzione dell'utente, l'assistente corrisponde all'intent e invia una notifica all'Azione, in modo che tu possa applicare la logica e rispondere agli utenti.

Figura 1. Esempio di intenzione di un utente

Per creare un'intenzione dell'utente:

  1. Nella scheda Sviluppo, fai clic su Intent dell'utente > ⊕ (Nuovo intent), specifica un nome e premi Invio per creare l'intent.
  2. Fai clic sull'intent appena creato nel menu a sinistra. Viene visualizzato l'editor di intent.
  3. Aggiungi frasi di addestramento all'intent. Devi aggiungere il maggior numero possibile di frasi di addestramento per addestrare la NLU dell'assistente.
  4. (Facoltativo) Annota le frasi di addestramento per indicare all'NLU dell'assistente di analizzare ed estrarre i parametri digitati dall'input utente corrispondente a un tipo specificato:
    1. Inserisci un nome per il parametro nel campo Aggiungi nuovo parametro.
    2. Seleziona un tipo di sistema dal menu a discesa oppure crea un tipo personalizzato.
    3. Specifica se il parametro è un elenco. In questo modo, il parametro può raccogliere più valori dello stesso tipo.
    4. Nella sezione Aggiungi frasi di addestramento, evidenzia il testo a cui vuoi applicare il tipo. Questo indica all'NLU dell'assistente di trattare il testo evidenziato come un parametro. Se gli utenti dicono qualcosa che corrisponde al tipo, l'NLU estrae quel valore come parametro.

Crea intent di sistema

Gli intent di sistema ti consentono di sfruttare intent con modelli linguistici predefiniti per eventi comuni come gli utenti che vogliono uscire dall'Azione o quando si verifica il timeout dell'input utente. Per creare intent di sistema:

  1. Nella scheda Sviluppo, fai clic su Intent di sistema. È disponibile un set di intent di sistema, ad esempio NO_MATCH, NO_INPUT e CANCEL.
  2. Ogni intent di sistema contiene i propri gestori, che puoi personalizzare per ogni tipo di intent del sistema. Ad esempio, gli intent di sistema consentono di attivare eventi webhook e di inviare prompt statici quando si verifica l'evento.

Crea tipi personalizzati

I tipi personalizzati ti consentono di creare la tua specifica per addestrare l'NLU a comprendere un insieme di valori che devono essere mappati a una singola chiave.

Figura 2. Esempio di tipo personalizzato

Per creare un tipo personalizzato:

  1. Nella scheda Sviluppo, fai clic su Tipi > ⊕ (nuovo tipo).
  2. Seleziona come fornire valori per il tipo nella sezione Quali tipi di valori sono supportati da questo tipo di supporto?:

    • Parole e sinonimi ti consentono di mappare più valori a una singola chiave, chiamata voce. Il tipo può contenere una o più voci. Se scegli questa opzione, puoi anche abilitare le seguenti impostazioni NLU:
      • Abilita la corrispondenza parziale: consente la corrispondenza delle voci con più di una parola, anche quando le parole vengono pronunciate in un ordine diverso.
      • Accetta valori sconosciuti: quando non è possibile specificare tutti i valori possibili, vengono accettate parole o frasi sconosciute in base ai dati di addestramento relativi a input e intent correlati, ad esempio articoli che potrebbero essere aggiunti a una lista della spesa.
    • Le espressioni regolari consentono al tipo di trovare corrispondenze con pattern di espressioni regolari basati sullo standard RE2 di Google.
    • Il testo in formato libero consente al tipo di corrispondere a tutto ciò che dice l'utente.
  3. Specifica i valori del tipo nella sezione Aggiungi voci. Se hai scelto Testo in formato libero, il tipo corrisponde a qualsiasi testo, quindi non devi fornire alcuna voce.

Crea logica e risposte dell'Azione

La NLU dell'assistente abbina le richieste degli utenti agli intent, in modo che l'Azione possa elaborarle in scene. Le scene sono potenti esecutori logici che consentono di elaborare gli eventi durante una conversazione.

Figura 3. Esempio di una scena personalizzata

Creare una scena

Le seguenti sezioni descrivono come creare scene e definirne la funzionalità per la fase del ciclo di vita di ogni scena.

Per creare una scena:

  1. Nella scheda Sviluppo, fai clic su Scene > ⊕ (Nuova scena), specifica un nome e premi Invio per creare una scena.
  2. Fai clic sulla scena appena creata nel menu a sinistra. Viene visualizzato l'Editor di scene.

Definisci una configurazione una tantum

Quando una scena diventa attiva per la prima volta, puoi eseguire attività una tantum nella fase Al momento dell'accesso. La fase On entra viene eseguita una sola volta ed è l'unica che non viene eseguita all'interno del loop di esecuzione di una scena.

  1. All'interno di una scena, fai clic sullo stage In entrata per specificarne la funzionalità. In questa fase puoi specificare le seguenti funzionalità:

    • Chiama il webhook: attiva un webhook. Per ulteriori informazioni sui webhook, consulta la documentazione sui webhook.
    • Invia prompt: specifica prompt statici all'utente in modo che sappia come continuare la conversazione. Per ulteriori informazioni su come specificare i prompt, consulta la documentazione relativa ai messaggi.
    Figura 4. Esempio di una scena sul palcoscenico

Controlla le condizioni

Le condizioni consentono di controllare i parametri di riempimento degli slot, di archiviazione delle sessioni, dello spazio di archiviazione degli utenti e dell'archiviazione domestica per controllare il flusso di esecuzione della scena.

  1. All'interno di una scena, fai clic sull'icona + per lo stage Condizione. L'editor delle condizioni viene visualizzato a destra. In questa fase puoi specificare le seguenti funzionalità:

    • Condizione - Specifica l'effettiva istruzione condizionale su cui basare la logica. Per informazioni sulla sintassi, consulta la documentazione sulle conditions.
    • Chiama il webhook: attiva un webhook. Per ulteriori informazioni sui webhook, consulta la documentazione sui webhook.
    • Invia richieste: consente di specificare i prompt statici da inviare all'utente in modo che sappia come continuare la conversazione. Per ulteriori informazioni sulla specifica dei prompt, consulta la documentazione relativa ai messaggi.
    • Transizione: specifica la scena a cui eseguire la transizione quando l'istruzione condizionale è vera.
Figura 5. Esempio della fase delle condizioni di una scena

Definisci la compilazione delle slot

Gli slot consentono di estrarre i parametri digitati dall'input utente.

Nell'editor della scena, fai clic sull'icona + per lo stage Riempimento slot. L'editor dell'area annuncio viene visualizzato a destra. Puoi specificare le seguenti proprietà di uno slot:

  • Nome area: specifica il nome dell'area annuncio. Se vuoi sfruttare la mappatura dei valori degli slot, utilizza lo stesso nome del parametro dell'intent corrispondente.
  • Tipo di slot: specifica il tipo di slot con un tipo di sistema o un tipo personalizzato.
  • Questo slot è obbligatorio: contrassegna questo slot come obbligatorio. Se attivata, il riempimento dell'area annuncio non verrà completato finché l'area non verrà riempita.
  • Assegna un valore predefinito a questo slot:specifica un valore predefinito per l'area che viene letto dal parametro di sessione specificato.
  • Personalizza il writeback del valore dell'area annuncio: specifica un parametro di sessione per mantenere il valore dell'area annuncio dopo il completamento del riempimento dell'area.
  • Convalida slot:attiva un webhook quando un'area viene riempita. Questa impostazione si applica a tutti gli slot.
  • Chiama il webhook (attivata quando l'area è obbligatoria): attiva un webhook. Per ulteriori informazioni sui webhook, consulta la documentazione relativa ai webhook.
  • Invia prompt (attivata quando lo slot è richiesto): specifica i prompt statici da inviare all'utente in modo che sappia come continuare la conversazione. Per ulteriori informazioni su come specificare i messaggi, consulta la documentazione relativa ai messaggi.

Per alcuni tipi di area annuncio (come quelli relativi alle transazioni o al coinvolgimento degli utenti), viene visualizzata una sezione aggiuntiva in cui puoi configurare l'area. Le configurazioni degli slot possono cambiare l'esperienza di conversazione per gli utenti in base alle proprietà fornite.

Per configurare uno slot, fornisci le proprietà in un oggetto JSON nel tuo fulfillment (a cui si fa riferimento come parametro di sessione) o nell'editor JSON incorporato. Puoi trovare le proprietà disponibili per ogni tipo di slot nel riferimento JSON di Actions Builder. Ad esempio, il tipo di slot actions.type.DeliveryAddressValue corrisponde ai contenuti di riferimento per l'area DeliveryAddressValue.

Figura 6. Esempio delle impostazioni di riempimento degli slot di una scena

Mappatura dei valori degli slot

In molti casi, una corrispondenza di intent precedente può includere parametri che riempiono parzialmente o interamente i valori dello slot di una scena corrispondente. In questi casi, tutti gli slot riempiti dai parametri di intent vengono mappati al riempimento degli slot della scena se il nome dell'area corrisponde al nome del parametro dell'intent.

Ad esempio, se un utente soddisfa l'intenzione di ordinare una bevanda dicendo "Voglio ordinare un grande caffè alla vaniglia", gli slot esistenti per dimensione, gusto e tipo di bevanda vengono considerati riempiti nella scena corrispondente se la scena definisce gli stessi spazi.

Elabora input

In questa fase, puoi fare in modo che la NLU dell'assistente associ l'input dell'utente agli intent. Puoi limitare l'ambito della corrispondenza di intent a una scena specifica aggiungendo gli intent desiderati alla scena. Questo ti permette di controllare il flusso della conversazione dicendo all'assistente di abbinare intent specifici quando scene specifiche sono attive.

  1. All'interno di una scena, fai clic sull'icona + per la fase Gestione intent dell'utente o Gestione dell'intent di sistema. L'editor del gestore di intent si trova sulla destra. Puoi specificare la seguente funzionalità del gestore di intent:

    • Intent: specifica l'intent che vuoi trovare all'interno di questa scena.
    • Chiama il webhook: attiva un webhook. Consulta la documentazione sui webhook per ulteriori informazioni su come gestire una richiesta webhook.
    • Invia richieste: specifica prompt statici per l'utente, in modo che sappia come rispondere. Per ulteriori informazioni su come specificare i prompt, consulta la documentazione relativa ai messaggi.
    • Transizione (se applicabile): specifica la scena a cui eseguire la transizione quando viene soddisfatto l'intent specificato.
Figura 7. Esempio del gestore di intent dell'utente di una scena
Figura 8. Esempio del gestore di intent di sistema di una scena