Crea azioni per l'Assistente Google utilizzando Actions Builder (livello 2)

1. Panoramica

La piattaforma per sviluppatori dell'Assistente Google ti consente di creare software per estendere la funzionalità dell'Assistente Google, un assistente personale virtuale, su oltre 1 miliardo di dispositivi, tra cui smart speaker, smartphone, auto, TV, cuffie e altro ancora. Gli utenti interagiscono con l'assistente per svolgere attività come acquistare generi alimentari o prenotare una corsa. In qualità di sviluppatore, puoi utilizzare la piattaforma per sviluppatori dell'assistente per creare e gestire facilmente esperienze conversazionali efficaci e piacevoli tra gli utenti e il tuo servizio di evasione di terze parti.

Questo codelab tratta concetti di livello intermedio per lo sviluppo con l'Assistente Google e si basa sull'azione creata nel codelab di livello 1. Ti consigliamo vivamente di completare il codelab di livello 1 prima di iniziare questo.

L'azione che crei in questo codelab dice agli utenti la loro fortuna per la loro missione nella terra mitica di Gryffinberg, in base all'aiuto che scelgono.

Cosa creerai

In questo codelab creerai un'Azione conversazionale sofisticata con le seguenti funzioni:

  • Raccoglie i dati dell'utente e, a seconda del valore, modifica i prompt conversazionali
  • Risponde con domande di follow-up per proseguire la conversazione
  • Crea un ciclo di gioco in modo che un utente possa interagire di nuovo con l'azione dopo aver ricevuto un messaggio

Prima di iniziare a creare, puoi interagire con l'azione live sul tuo dispositivo con l'Assistente Google dicendo "Hey Google, parla con Fato e Fortuna". Il percorso predefinito di questa azione per un utente di ritorno è il seguente:

dd6f5c61296b8b50.png

eba043f546aa8c51.png

Obiettivi didattici

  • Come utilizzare gli slot per raccogliere dati dall'utente
  • Come utilizzare le condizioni per aggiungere logica a una scena
  • Come aggiungere un ciclo di gioco
  • Come aggiungere un percorso di supporto

Che cosa ti serve

I prerequisiti per questo codelab includono quanto segue:

Per comprendere il codice di fulfillment di questo codelab, è consigliabile, anche se non obbligatorio, avere familiarità con JavaScript (ES6).

2. Continua a creare l'interfaccia conversazionale

Nel primo codelab, hai creato una semplice Azione conversazionale con una sola scena, Start.

In questo codelab, estendi la conversazione dell'azione. Nelle sezioni seguenti, configurerai l'azione in modo che:

  • Passa a una nuova scena di Fortune quando l'utente vuole ascoltare la sua fortuna
  • Chiedi all'utente quale ausilio vuole scegliere per il suo viaggio
  • Fornire un messaggio personalizzato in base alla scelta dell'utente

Crea scena Fortune

In questa sezione, crei la scena Fortune e definisci la transizione dell'utente durante la conversazione.

Per creare una nuova scena chiamata Fortune:

  1. Apri il progetto Azioni del codelab di livello 1.
  2. Fai clic su Sviluppa nella barra di navigazione.
  3. Nella sezione Scene, fai clic sulla scena Inizia.
  4. Fai clic sull'intent (la casella Quando viene rilevato un sì) per aprire le opzioni.
  5. Deseleziona Invia prompt per rimuovere il prompt.
  6. Nella sezione Transizione, fai clic sul menu a discesa, poi nella casella di testo e digita Fortune.
  7. Fai clic su Aggiungi. Viene creata una nuova scena denominata Fortune. Aggiunge anche una transizione dalla scena Start alla scena Fortune quando l'utente vuole ascoltare la sua fortuna.

56682a0c7459b98c.png

Definisci la logica conversazionale per la scena Fortune

In questo codelab, configuri la scena Fortune per chiedere all'utente: "Cosa scegli per aiutarti nella tua missione: un drago, un traduttore o una bussola?" Puoi utilizzare una funzionalità chiamata riempimento degli slot per raccogliere le informazioni necessarie dall'utente prima di procedere.

La tua Azione fornisce fortune per tre aiuti: un drago, un traduttore e una bussola. Per configurare l'azione in modo che identifichi queste tre opzioni nell'input di un utente, devi creare un nuovo tipo.

Puoi utilizzare i tipi nella fase di compilazione degli slot di una scena per definire le informazioni che vuoi ottenere dall'utente. Quando il motore NLU rileva una corrispondenza di slot nell'input dell'utente, estrae lo slot come parametro digitato, in modo da poter eseguire la logica con esso in una scena.

Crea tipo available_options

In questa sezione, crei un nuovo tipo chiamato available_options, che specifica le tre opzioni che gli utenti possono scegliere (drago, traduttore e bussola) in risposta al prompt. Definisci anche alcuni sinonimi per queste opzioni nel caso in cui un utente dica qualcosa di simile. In una sezione successiva, aggiungi il tipo available_options a uno slot per specificare che vuoi ottenere la scelta dell'utente.

Per creare il tipo available_options:

  1. Nella barra di navigazione, fai clic su Tipi.
  2. Fai clic su + (segno più), digita available_options e premi Enter.
  3. Fai clic su available_options per aprire le opzioni.

I tipi sono configurati come coppie chiave-valore di informazioni, in cui la chiave è il nome del tipo e i valori sono sinonimi di quella chiave. Quando definisci la chiave, questa viene aggiunta automaticamente come valore.

Per aggiungere le tre opzioni che l'utente può scegliere, segui questi passaggi:

  1. Scorri fino alla sezione Aggiungi voci.
  2. Nel campo Nuova voce, digita dragon e premi Enter. Questa azione crea una chiave dragon.
  3. Digita hydra nel campo Aggiungi valori e premi Enter per aggiungerlo come valore (sinonimo). Quindi, ripeti questo passaggio per il valore lizard.
  4. Aggiungi le altre chiavi e i valori corrispondenti:
  • translator | translator, communicator, machine, decoder, translate
  • compass | compass, direction, guide

8333b1b67445f21.png

  1. Fai clic su Salva.

Ora l'azione comprende che available_options sono drago, traduttore e bussola e può anche riconoscere alcuni sinonimi corrispondenti.

Configura il riempimento degli slot

Il passaggio successivo consiste nel configurare il riempimento degli slot nella scena Fortune. Per configurare la logica di compilazione degli slot:

  1. Nella barra di navigazione, in Scene, fai clic su Fortuna.
  2. Nella scena Fortune, fai clic su + (segno più) per Riempimento slot.
  3. Nel campo Inserisci nome slot, aggiungi chosenOptions come nome dello slot.
  4. Nell'elenco a discesa Seleziona tipo, seleziona available_options come tipo di slot.
  5. Seleziona la casella di controllo Questo slot è obbligatorio.

a461b906476e244.png

  1. Seleziona Invia prompt e aggiungi il seguente messaggio e i seguenti chip di suggerimento:
candidates:
  - first_simple:
      variants:
        - speech: >-
            What do you choose to help you on your quest, a dragon, a
            translator, or a compass?
    suggestions:
      - title: 'Dragon'
      - title: 'Translator'
      - title: 'Compass'
  1. Fai clic su Salva.

Ora hai aggiunto il tipo available_options allo slot, che indica all'azione le informazioni da raccogliere dall'utente (la sua scelta di aiuto) prima di procedere. Hai anche configurato un prompt all'interno dello slot, che viene aggiunto alla coda dei prompt quando l'utente raggiunge la fase di compilazione dello slot della scena.

Tieni presente che quando hai assegnato il nome chosenOptions allo slot, il campo Scrittura di valori personalizzati dello slot viene aggiornato con lo stesso nome ($session.params.chosenOptions). Puoi accedere a questo parametro con questo nome in Actions Builder e nell'intent di fulfillment tramite la libreria client.

Configura la condizione scene.slots.status == "FINAL"

Quando aggiungi uno slot, la condizione scene.slots.status == "FINAL" viene aggiunta automaticamente all'elenco delle condizioni.

La condizione scene.slots.status == "FINAL" verifica che il riempimento degli slot sia completato. Quando tutti gli slot sono pieni, la condizione può attivare un webhook, passare a una nuova scena o aggiungere prompt alla coda dei prompt.

In questa sezione configurerai scene.slots.status == "FINAL" per aggiungere una richiesta alla coda delle richieste una volta riempiti gli slot.

Per aggiungere questo prompt alla condizione FINAL:

  1. Fai clic su scene.slots.status == "FINAL" per aprire la finestra delle opzioni.
  2. Seleziona Invia prompt e aggiungi il seguente prompt:
candidates:
  - first_simple:
      variants:
        - speech: You picked $session.params.chosenOptions.
  1. Fai clic su Salva.

Testare l'azione nel simulatore

A questo punto, hai definito le opzioni che l'utente deve selezionare per compilare lo spazio. Dopo aver ottenuto queste informazioni dall'utente, l'azione deve fornire un prompt che faccia riferimento all'opzione specifica che ha scelto.

Per testare l'azione, segui questi passaggi:

  1. Nella barra di navigazione, fai clic su Test.
  2. Fai clic o digita Talk to my test app nel campo Input e premi Enter.
  3. Digita Yes nel campo Input e premi Enter. In alternativa, puoi fare clic sul chip di suggerimento .

a899d45c542668f6.png

  1. Fai clic, digita o pronuncia dragon. Dovresti ricevere il prompt "Hai scelto il drago".

Nella sezione successiva, personalizza i prompt per ogni aiuto che l'utente può selezionare.

Personalizzare i prompt utilizzando le condizioni

In questa sezione, aggiungi le condizioni per ogni opzione che l'utente può scegliere e un prompt personalizzato per ogni condizione.

Personalizzare il messaggio dragon

Per aggiornare la condizione e personalizzare il prompt quando un utente sceglie "drago", segui questi passaggi:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Nella barra di navigazione, fai clic sulla scena Fortuna.
  3. Fai clic su scene.slots.status == "FINAL" per aprire la finestra delle opzioni.
  4. Aggiorna l'istruzione di condizione a: scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
  5. Seleziona Invia prompt.
  6. Aggiorna il prompt con la seguente fortuna nell'editor di codice:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The people of Gryffinberg will be awestruck by the beauty and power
            of the ancient dragon. Much to your dismay, the townspeople fall
            into dispute over who will receive the honor of riding the dragon
            first. You return home from your quest without everlasting glory or
            a dragon.
  1. Fai clic su Salva.

d31767232ad908bd.png

Ora, quando un utente dice "drago" o qualcosa di simile, la tua Azione fornisce una fortuna in base a questa selezione. Dopodiché, aggiungi le altre due selezioni.

Personalizzare il messaggio translator

Per aggiungere la condizione e personalizzare il prompt per quando un utente sceglie "Traduttore", segui questi passaggi:

  1. Fai clic sul segno più (+) accanto a Condizione.
  2. Aggiungi scene.slots.status == "FINAL" && session.params.chosenOptions == "translator" al campo else if.
  3. Seleziona Invia prompt.
  4. Aggiungi il seguente prompt nell'editor di codice:
candidates:
  - first_simple:
      variants:
        - speech: >-
            With the help of the translator, the rival factions in Gryffinberg
            are finally able to communicate with each other and resolve their
            disputes. You will complete your quest to restore peace in the town.
            The translator will be used on many subsequent journeys across the
            earth. After its work is done, it retires honorably to a premier
            location in the Gryffinberg History Museum.
  1. Fai clic su Salva.

c1af65e70dbf3dfe.png

Personalizzare il messaggio compass

Per aggiungere la condizione e personalizzare il prompt per quando un utente sceglie "bussola":

  1. Fai clic sul segno più (+) accanto a Condizione.
  2. Aggiungi scene.slots.status == "FINAL" && session.params.chosenOptions == "compass" alla casella di testo else if.
  3. Seleziona Invia prompt.
  4. Aggiungi il seguente prompt nell'editor di codice:
candidates:
  - first_simple:
      variants:
        - speech: >-
            The compass will help you find the mystical and ancient Library of
            Gryffinberg. Among its infinite stacks of dusty books, you find one
            entitled "Wisdom of the Ages". By the time you've read the
            50,000-page tome, the townspeople have forgotten their problems. You
            will write a second edition of "Wisdom of the Ages", but have
            limited commercial success.
  1. Fai clic su Salva.

Testare l'azione nel simulatore

A questo punto, l'azione deve fornire all'utente una fortuna personalizzata in base all'opzione selezionata.

Per testare l'azione, segui questi passaggi:

  1. Nella barra di navigazione, fai clic su Test.
  2. Digita Talk to my test app nel campo Input e premi Enter.
  3. Digita Yes nel campo Input e premi Enter. In alternativa, fai clic sul chip di suggerimento .
  4. Fai clic, digita o pronuncia Translator.

29e17f950bd0dd71.png

Dovresti ricevere la fortuna appropriata per l'opzione "Traduttore".

3. Aggiungi ciclo di gioco

In questa sezione, configura l'azione in modo che l'utente possa selezionare un'altra opzione e ascoltare un'altra fortuna dopo aver effettuato una selezione. Questa modifica è simile al messaggio "Vuoi giocare di nuovo?" alla fine di una partita. Per creare questo ciclo, puoi riutilizzare gli intent yes e no creati in precedenza e aggiungerli a una nuova scena denominata Again.

Crea scena Again

In questa sezione, crea una nuova scena Again e aggiungi un prompt che chiede all'utente se vuole selezionare un'opzione diversa.

Per creare la scena Again:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic sul segno più (+) in Scene.
  3. Digita Again e premi Enter.
  4. Fai clic sulla scena Again nella barra di navigazione.
  5. Fai clic sul segno più (+) accanto a All'inserimento.
  6. Seleziona Invia prompt e aggiungi i seguenti prompt e chip di suggerimento:
candidates:
  - first_simple:
      variants:
        - speech: >-
            That is what I see for you. Would you like to choose a different option and
            explore another future?
    suggestions:
      - title: 'Yes'
      - title: 'No'
  1. Fai clic su Salva.

Aggiungi transizione dalla scena Fortune alla scena Again

Dopo aver ricevuto la sua fortuna, la conversazione deve passare alla nuova scena Again.

Per aggiungere una transizione dalla scena Fortune alla scena Again:

  1. Fai clic sulla scena Fortuna.
  2. Fai clic sulla prima condizione (scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon") per aprire la finestra delle opzioni.
  3. Scorri e seleziona Again in Transizione.
  4. Fai clic su Salva.
  5. Fai clic sulla seconda condizione per aprire la finestra delle opzioni.
  6. Scorri e seleziona Again in Transizione.
  7. Fai clic su Salva.
  8. Fai clic sulla terza condizione per aprire la finestra delle opzioni.
  9. Scorri e seleziona Again in Transizione.
  10. Fai clic su Salva.

Testare l'azione nel simulatore

A questo punto, l'azione deve fornire il seguente prompt all'utente dopo che ha ricevuto la sua fortuna: "Questo è ciò che vedo per te. Vuoi scegliere un'altra opzione ed esplorare un altro futuro?"

Per testare l'azione, segui questi passaggi:

  1. Nella barra di navigazione, fai clic su Test.
  2. Digita Talk to my test app nel campo Input e premi Enter.
  3. Digita Yes nel campo Input e premi Enter. In alternativa, fai clic sul chip di suggerimento .
  4. Fai clic, digita o pronuncia dragon.

b299e9fed9aedb69.png

Dovresti ricevere la fortuna per l'opzione del drago e il prompt Again.

Aggiungere intent e passare alla scena Again

In questa sezione, aggiungi gli intent yes e no alla scena Again in modo che l'azione comprenda se l'utente vuole scegliere una nuova opzione o meno. Aggiungi anche le transizioni appropriate per gli intent yes e no. L'intent yes passa alla scena Fortune, mentre l'intent no passa alla scena di sistema End conversation.

Per aggiungere intent e transizioni alla scena Again:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic sulla scena Again.
  3. Fai clic sul segno più (+) accanto a Gestione dell'intent dell'utente.
  4. Seleziona dal menu a discesa dell'intent.
  5. Seleziona Fortune dal menu a discesa Transizione.
  6. Fai clic su Salva.

c2efba35ea881b0d.png

  1. Fai clic sul segno più (+) accanto a Gestione dell'intent dell'utente.
  2. Seleziona No dal menu a discesa dell'intent.
  3. Seleziona Termina conversazione dal menu a discesa Transizione.
  4. Seleziona Invia prompt e aggiungi il seguente prompt nell'editor di codice:
candidates:
  - first_simple:
      variants:
        - speech: >-
            It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
  1. Fai clic su Salva.

Testare l'azione nel simulatore

L'azione ora dovrebbe capire se l'utente vuole scegliere una nuova opzione o terminare la conversazione.

Per testare l'intent yes, segui questi passaggi:

  1. Nella barra di navigazione, fai clic su Test.
  2. Digita Talk to my test app nel campo Input e premi Enter.
  3. Digita Yes nel campo Input e premi Enter. In alternativa, fai clic sul chip di suggerimento .
  4. Fai clic, digita o pronuncia una delle opzioni.
  5. Digita Yes nel campo Input e premi Enter.

5d0690332efe2e29.png

Dovresti ricevere il prompt "Cosa scegli per aiutarti nella tua missione: un drago, un traduttore o una bussola?"

Per testare l'intent no, segui questi passaggi:

  1. Fai clic, digita o pronuncia una delle opzioni.
  2. Digita No nel campo di input e premi Enter.

Dovresti ricevere il prompt End conversation: "Mi fa piacere che tu sia soddisfatto della tua scelta. Ti auguro buona fortuna nella tua missione. Addio."

4. Aggiungere un percorso di supporto

Ora hai creato il percorso principale seguito dalla maggior parte degli utenti nella tua Azione. Tuttavia, l'utente potrebbe rispondere alla domanda della scena Fortune: "Cosa scegli per aiutarti nella tua missione: un drago, un traduttore o una bussola?", con una scelta che non rientra tra le opzioni fornite.

In questa sezione, configura l'azione in modo che comprenda quando un utente sceglie "magia", "soldi", "cavallo" o "telefono" e che gli chieda di selezionare una delle tre scelte originali quando sceglie una di queste opzioni. Per configurare questa logica, devi creare un nuovo type che contenga queste altre scelte e un nuovo intent, other_option, che viene abbinato quando un utente dice una di queste opzioni. Devi anche annotare le frasi di addestramento all'interno dell'intent other_option per identificare ed estrarre i parametri dell'intent.

Quando il motore di elaborazione del linguaggio naturale (NLU) dell'assistente rileva una corrispondenza di parametri nell'input dell'utente, estrae il valore come parametro digitato in modo da poter eseguire la logica in una scena. In questo codelab, configuri l'azione in modo da estrarre l'aiuto scelto dall'utente e fare riferimento a questa scelta in un prompt.

Crea tipo unavailable_options

Ora puoi creare un tipo unavailable_options che contiene una serie di opzioni diverse in modo che l'azione possa identificare i dati nell'input di un utente.

Per creare il tipo unavailable_options:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic sul segno più (+) in Tipi.
  3. Digita unavailable_options e premi Enter.
  4. Fai clic su unavailable_options per aprire le opzioni.
  5. Inserisci le seguenti voci e i valori corrispondenti nella sezione Aggiungi voci:

horse

horse, stallion, steed

magic

magic, enchanted, spells

money

money, cash, gold

phone

phone, cell, apps

La tabella chiave-valore dovrebbe avere il seguente aspetto:

c9e119e0f5fb2a47.png

  1. Fai clic su Salva.

Crea intent other_option

Successivamente, crea un intent chiamato other_option e aggiungi frasi di addestramento che includono le opzioni del tipo unavailable_options. Questo intent viene abbinato quando l'utente seleziona una scelta contenuta nel tipo unavailable_options.

Per creare e configurare l'intent other_option:

  1. Fai clic sul segno più (+) in Intent personalizzati.
  2. Digita other_option e premi Enter.
  3. Fai clic su other_option per aprire la finestra.
  4. Aggiungi le seguenti frasi di addestramento e premi Enter dopo ognuna:
  • I want to use spells
  • I really really want to use a phone
  • magic!
  • cash
  • I want to ride a horse
  1. Nella sezione Aggiungi parametri intent, aggiorna il nome del parametro a chosenUnavailableOption.
  2. Fai clic su Salva.

Man mano che inserisci le frasi di addestramento, Actions Builder riconosce spells, phone, magic, cash e horse dal tipo unavailable_options ed evidenzia (annota) automaticamente queste parole. Actions Builder aggiunge automaticamente un parametro intent nella sezione Aggiungi parametri intent, come mostrato nell'immagine seguente.

Il parametro intent ti consente di estrarre il nome dell'opzione e di utilizzarla in un prompt.

df61d4489f0910.png

Aggiungi l'intent other_option alla scena Fortune

Ora hai un intent, other_option, in grado di gestire un'opzione specificata dall'utente che non è una delle opzioni originali. In questa sezione, aggiungi l'intent other_option alla scena Fortune. Utilizzi il parametro intent per personalizzare il prompt in base all'input dell'utente.

Per aggiungere l'intent other_option alla scena Fortune:

  1. Fai clic sulla scena Fortuna.
  2. Fai clic sul segno più (+) accanto a Gestione dell'intent dell'utente.
  3. Seleziona other_option dal menu a discesa degli intent.
  4. Seleziona Invia prompt e aggiungi il seguente prompt:
candidates:
  - first_simple:
      variants:
        - speech: >-
            I have seen the future and a $intent.params.chosenUnavailableOption.original
            will not aid you on your journey. 

L'espressione $intent.params.chosenUnavailableOption si riferisce all'oggetto parametro intent e $intent.params.chosenUnavailableOption.original si riferisce al valore di quell'oggetto. original property si riferisce all'input non elaborato specificato dall'utente.

  1. Fai clic su Salva.

4bab1efbe21056aa.png

Quando un utente pronuncia un'opzione elencata nel tipo unavailable_options durante la scena Fortune, l'intent other_option viene abbinato e aggiunge un prompt alla coda dei prompt. Poiché non è stata specificata alcuna transizione, il ciclo di esecuzione della scena continua rivalutando la fase delle condizioni. Lo slot chosenOptions aggiunge quindi il suo prompt alla coda dei prompt, che viene inviata all'utente.

Testare l'azione nel simulatore

Ora l'azione dovrebbe rispondere in modo appropriato quando un utente seleziona una delle opzioni elencate nel tipo unavailable_options e specificare l'ausilio selezionato. L'azione dovrebbe quindi chiedere all'utente di scegliere una delle opzioni originali (un drago, un traduttore o una bussola).

Per testare l'azione nel simulatore:

  1. Nella barra di navigazione, fai clic su Test.
  2. Digita Talk to my test app nel campo Input e premi Enter.
  3. Digita Yes nel campo Input e premi Enter. In alternativa, fai clic sul chip di suggerimento .
  4. Digita magic nel campo Input e premi Enter.

3a42c33eca435f32.png

Potresti notare che il prompt non suona correttamente quando l'utente sceglie "magico" a causa dell'articolo "un" posizionato prima. Affronterai questo problema nelle sezioni seguenti.

Aggiungi il gestore unavailable_options

Per inserire l'articolo "un" prima delle scelte appropriate del tipo unavailable_options, puoi configurare un gestore di eventi nella logica di evasione per verificare se l'opzione scelta dall'utente richiede l'articolo "un" prima. Innanzitutto, devi configurare l'azione per chiamare il gestore nella console.

Per aggiungere il gestore unavailable_options:

  1. Fai clic su Sviluppa nella barra di navigazione.
  2. Fai clic sulla scena Fortune.
  3. In Gestione dell'intent dell'utente, fai clic su Quando viene trovata una corrispondenza per other_option per aprire la finestra.
  4. Deseleziona la casella di controllo Invia prompt.
  5. Seleziona la casella di controllo Chiama il webhook.
  6. Inserisci unavailable_options nella casella di testo del gestore di eventi.

52a0fba115f1b377.png

  1. Fai clic su Salva.

Aggiorna ed esegui il deployment dell'evasione

Ora che hai configurato l'azione per chiamare il gestore di eventi unavailable_options, puoi aggiornarlo nell'intent di evasione e implementarlo.

Per aggiornare l'evasione, segui questi passaggi:

  1. Fai clic su Webhook nella barra di navigazione.
  2. Aggiungi il seguente codice al gestore greeting:
app.handle('unavailable_options', conv => {
  const option = conv.intent.params.chosenUnavailableOption.original;
  const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
  let message = 'I have seen the future and ';
  if(optionsNeedA.has(optionKey)){
    message = message + 'a ';
  }
  message = message + `${option} will not aid you on your journey. `;
  conv.add(message);
});
  1. Aggiungi il seguente codice sotto const app = conversation();:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
  1. Fai clic su Salva adempimento.
  2. Fai clic su Esegui il deployment dell'evasione. Al termine del deployment, sopra l'editor viene visualizzato il messaggio Il deployment della funzione cloud è aggiornato.

comprendi il codice

Il gestore unavailable_options esegue le seguenti operazioni:

  • Recupera i dati option dall'oggetto conv e li assegna alla proprietà original, che è l'input non elaborato dell'utenteoption
  • Assegna optionKey alla proprietà resolved, che è la chiave per il tipo unavailable_options
  • Controlla se optionKey è una delle opzioni che richiede una "a"; in caso affermativo, crea il messaggio con una "a" aggiuntiva
  • Aggiunge il messaggio tramite conv.add(message)

Testare l'azione nel simulatore

L'azione ora dovrebbe modificare la richiesta in base al fatto che la scelta dell'utente dal tipo unavailable_options richieda l'articolo "un" prima.

Per testare l'azione, segui questi passaggi:

  1. Nella barra di navigazione, fai clic su Test.
  2. Fai clic o digita Talk to my test app nel campo Input e premi Enter.
  3. Digita Yes nel campo Input e premi Enter. In alternativa, fai clic sul chip di suggerimento .
  4. Digita magic nel campo Input e premi Enter.
  5. Digita horse nel campo Input e premi Enter.

54ee24c5c3c56e.png

L'azione deve aggiungere l'articolo "un" prima della scelta "cavallo", mentre deve costruire il prompt senza l'articolo "un" per la scelta "magico".

Pulire il progetto [consigliato]

Per evitare possibili addebiti, ti consigliamo di rimuovere i progetti che non intendi utilizzare. Per eliminare i progetti che hai creato in questo codelab:

  1. Per eliminare il progetto Cloud e le risorse, completa i passaggi elencati nella sezione Chiusura (eliminazione) dei progetti.
  1. (Facoltativo) Per rimuovere immediatamente il progetto dalla console Azioni, consulta Eliminare un progetto. Se non completi questo passaggio, il tuo progetto verrà rimosso automaticamente dopo circa 30 giorni.

5. Complimenti!

Ora hai acquisito le competenze intermedie necessarie per creare Azioni per l'Assistente Google.

Argomenti trattati

  • Come sviluppare Azioni conversazionali utilizzando la libreria di fulfillment Node.js
  • Come utilizzare gli slot per raccogliere dati dall'utente
  • Come utilizzare le condizioni per aggiungere logica alla scena
  • Come aggiungere un ciclo di gioco
  • Come aggiungere un percorso di supporto

Scopri di più

Esplora le seguenti risorse per scoprire di più sulla creazione di Azioni per l'Assistente Google:

Segui @ActionsOnGoogle su Twitter per rimanere al corrente sui nostri ultimi annunci e twitta con l'hashtag #AoGDevs per condividere ciò che hai creato.

Sondaggio di opinione

Prima di andare, compila un breve sondaggio sulla tua esperienza.