Gioco di allenamento ortografico con l'Assistente Google e Cloud Firestore

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 in conversazioni 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, Cloud Functions e Cloud Firestore. In questo codelab, creerai un gioco chiamato "Esercizi di ortografia " che utilizza l'Assistente Google per chiedere agli utenti di fare lo spelling delle parole.

Cosa creerai

In questo codelab creerai un gioco sofisticato con le seguenti funzionalità:

  • Riceve le risposte ortografiche dell'utente e, a seconda del valore, modifica i prompt conversazionali
  • Risponde con suggerimenti relativi all'ortografia della parola, come la sua definizione o la ripetizione della parola
  • Crea un ciclo di gioco in modo che l'utente possa interagire di nuovo con l'assistente dopo aver scritto la parola

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

Al termine di questo codelab, l'azione completata avrà il seguente flusso conversazionale:

2e9f94dc0ceafc96.png

Cosa imparerai a fare

  • Come interagire con Cloud Firestore
  • Come utilizzare gli slot per raccogliere dati dall'utente
  • Come elaborare l'input di un utente e restituire una risposta
  • Come utilizzare le condizioni per aggiungere logica a una scena
  • Come aggiungere un ciclo di gioco

Che cosa ti serve

I prerequisiti per questo codelab includono quanto segue:

  • Un browser web, ad esempio Google Chrome
  • Un IDE per scrivere funzioni Cloud Functions.
  • Un metodo di pagamento. Questo codelab utilizza Cloud Functions for Firebase, che richiede che il tuo progetto utilizzi il piano tariffario Blaze di Firebase ( scopri di più).
  • Un terminale per eseguire comandi shell
  • Node.js 10 o versioni successive

2. Recuperare il codice delle funzioni

Clona il repository GitHub dalla riga di comando:

$ git clone https://github.com/FirebaseExtended/codelab-actions-firestore

3. Crea un progetto Firebase e configura la tua app

Crea un progetto Firebase

  1. Accedi a Firebase.
  2. Nella console Firebase, fai clic su Aggiungi progetto (o Crea un progetto), quindi assegna al progetto Firebase il nome Spelling-Practice.

66ae8d1894f4477.png

  1. Fai clic sulle opzioni di creazione del progetto. Accetta i Termini di Firebase se richiesto. Salta la configurazione di Google Analytics perché non lo utilizzerai per questa app.

Per saperne di più sui progetti Firebase, consulta Informazioni sui progetti Firebase.

Esegui l'upgrade al piano tariffario Blaze

Per utilizzare Cloud Functions for Firebase, devi eseguire l'upgrade del tuo progetto Firebase al piano tariffario Blaze, il che significa che devi collegare un account di fatturazione Google Cloud al tuo progetto. Per farlo, devi fornire una carta di credito o un altro metodo di pagamento.

Tutti i progetti Firebase, inclusi quelli con il piano Blaze, hanno ancora accesso alle quote di utilizzo senza costi per Cloud Functions. I passaggi descritti in questo codelab rientrano nei limiti di utilizzo senza costi. Tuttavia, vedrai piccoli addebiti ( circa 0,03 $) da Cloud Storage, che viene utilizzato per ospitare le immagini di build di Cloud Functions.

4. Installa l'interfaccia a riga di comando di Firebase

L'interfaccia a riga di comando di Firebase ti consente di eseguire il deployment delle tue Cloud Functions.

Esistono diverse opzioni per installare l'interfaccia a riga di comando di Firebase a seconda del sistema operativo e del caso d'uso. I passaggi seguenti descrivono l'opzione più comune se utilizzi anche Cloud Functions.

  1. Assicurati di aver installato npm, che in genere viene fornito con Node.js.
  2. Installa o esegui l'upgrade dell'interfaccia a riga di comando eseguendo il seguente comando npm:
$ npm -g install firebase-tools
  1. Verifica che la CLI sia stata installata correttamente eseguendo:
$ firebase --version

Assicurati che la versione della CLI Firebase sia 9.0.0 o successiva, in modo che disponga di tutte le funzionalità più recenti richieste per Cloud Functions. In caso contrario, esegui npm install -g firebase-tools per eseguire l'upgrade come mostrato sopra.

  1. Autorizza l'interfaccia a riga di comando di Firebase eseguendo:
$ firebase login
  1. Dalla directory spelling-functions-start, configura l'interfaccia a riga di comando di Firebase per utilizzare il tuo progetto Firebase. Esegui questo comando, seleziona l'ID progetto e segui le istruzioni. Quando richiesto, puoi scegliere qualsiasi alias, ad esempio codelab.
$ firebase use --add

5. La directory delle funzioni

Ora aggiungerai funzionalità utilizzando l'SDK Firebase per Cloud Functions per creare il backend del gioco Esercizi di ortografia.

Cloud Functions ti consente di avere codice eseguito nel cloud senza dover configurare un server. Questo codelab ti mostrerà come creare funzioni che reagiscono agli eventi di Firebase Authentication, Cloud Storage e Firebase Realtime Database. Iniziamo con l'autenticazione.

Quando utilizzi l'SDK Firebase per Cloud Functions, il codice delle funzioni si trova nella directory functions (per impostazione predefinita). Per semplificarti la vita, abbiamo già creato il file functions/index.js in cui verrà inserito il codice. Prima di andare avanti, puoi esaminare la directory functions.

$ cd functions
$ ls

Il codice delle funzioni è anche un'app Node.js e pertanto richiede un file package.json che fornisca alcune informazioni sull'app ed elenchi le dipendenze.

Se non hai dimestichezza con Node.js, ti consigliamo di saperne di più prima di continuare il codelab.

Il file package.json elenca già due dipendenze richieste: l'SDK Firebase per Cloud Functions e l'SDK Firebase Admin. Per installarli localmente, esegui npm install dalla directory functions:

$ npm install

Ora diamo un'occhiata al file index.js:

index.js

/**
 * Copyright 2021 Google Inc. All Rights Reserved.
 * ...
 */
// TODO(DEVELOPER): Import the Cloud Functions for Firebase and Firebase Admin modules here. Also import the Actions SDK here.
// TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here.
// TODO(DEVELOPER): Write the createSpellingPracticeWord function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWordList function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.

Innanzitutto, importa i moduli richiesti, poi scrivi quattro funzioni al posto dei TODO. Continua con il passaggio successivo del codelab per importare i moduli.

6. Importa i moduli richiesti

Questo codelab richiede tre moduli.

  • Il modulo firebase-functions ci consente di scrivere i trigger per le nostre funzioni Cloud Functions
  • Il modulo firebase-admin ci consente di utilizzare la piattaforma Firebase su un server con accesso amministrativo, ad esempio per scrivere su Cloud Firestore.
  • La libreria di fulfillment Node.js dell'SDK Actions soddisfa i gestori dell'SDK Actions per l'Assistente Google.
  1. Installa l'SDK Actions eseguendo il seguente comando npm:
$ npm install @assistant/conversation
  1. Nel file index.js, sostituisci il primo TODO con il seguente.

Queste modifiche importano ciascuno dei moduli richiesti.

Inoltre, l'SDK Firebase Admin può essere configurato automaticamente quando viene eseguito il deployment in un ambiente Cloud Functions o in un altro container Google Cloud. Questo è ciò che accade quando chiamiamo admin.initializeApp(); nelle modifiche riportate di seguito.

index.js

/**
 * Copyright 2021 Google Inc. All Rights Reserved.
 * ...
 */

// Import the Actions SDK
const {conversation} = require('@assistant/conversation');
const https = require('https');
const app = conversation();
const cors = require('cors')({origin: true});

// Import the Firebase SDK for Cloud Functions.
const functions = require('firebase-functions');
// Import and initialize the Firebase Admin SDK.
const admin = require('firebase-admin');
admin.initializeApp();
// To access Cloud Firestore
const db = admin.firestore();
// TODO(DEVELOPER): Write the getWordDetailsFromDictionaryAPI function here.
// TODO(DEVELOPER): Write the createSpellingPracticeWord function here.
// TODO(DEVELOPER): Write the shuffleWordList function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWordList function here.
// TODO(DEVELOPER): Write the app Handle getSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle repeatSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle definitionOfSpellingWord function here.
// TODO(DEVELOPER): Write the app Handle verifySpellingWord function here.

Ora aggiungiamo la logica di business utilizzando le funzioni per supportare le Azioni dell'assistente.

7. Creazione funzioni

Recupera le definizioni delle parole e scrivile in Cloud Firestore

Utilizzerai l'API pubblica dictionaryapi.dev per ottenere le definizioni delle parole.

Nel file index.js, sostituisci il TODO per getWordDetailsFromDictionaryAPI con quanto segue:

index.js

// Retrieves word definition and audio pronunciation from api.dictionaryapi.dev service
// Function uses service provided by https://dictionaryapi.dev/
async function getWordDetailsFromDictionaryAPI(word) {
  let responseData="";
  let req = https.request({
    host: 'api.dictionaryapi.dev',
    port: 443,
    path:'/api/v2/entries/en/' + word,
    method:'GET'
  }, (res) => {
    res.setEncoding('utf8');
    res.on('data', d => {
        responseData+=d;
    })
    res.on('end',function(){
        let object = JSON.parse(responseData)
        const wordListRef = db.collection('wordlist');
        wordListRef.doc(object[0].word).set(
          object[0]
        );
       return responseData;
     });
  });
  req.end();
}

Aggiungi un trigger Cloud Firestore

Successivamente, creerai una funzione Cloud Functions che si attiva ogni volta che viene creato un nuovo documento in Cloud Firestore. Chiamerà l'API dictionaryapi.dev per ottenere le definizioni delle parole tramite la funzione getWordDetailsFromDictionaryAPI che abbiamo scritto poco sopra.

Nel file index.js, sostituisci il TODO per createSpellingPracticeWord con quanto segue:

index.js

// Firestore trigger that fetches word definitions through getWordDetailsFromDictionaryAPI for every new Firestore document

exports.createSpellingPracticeWord = functions.firestore
  .document('wordlist/{word}')
  .onCreate((snap, context) => {
    const newValue = snap.data();
    const word = newValue.word;
    getWordDetailsFromDictionaryAPI(word);
});

Ottenere un elenco di parole per il gioco

Puoi scrivere una funzione Cloud Functions che recupera un elenco di parole per l'esercizio di ortografia da Cloud Firestore per l'assistente. A questo scopo, utilizziamo il gestore di app.

Nel file index.js, sostituisci il TODO per getSpellingWordList con quanto segue.

L'aggiunta di questa funzione al app.handle speciale è un modo per renderla accessibile dall'assistente.

index.js

// Store the list of spelling words in Assistant session
app.handle('getSpellingWordList', conv => {
  const wordListRef = db.collection('wordlist').limit(50);
  const snapshot = wordListRef;

  if (snapshot.empty) {
    console.log('No matching documents.');
    return;
  }
  VocabularyList = []

  return snapshot.get().then(snapshot => {
    snapshot.forEach(doc => {
      if (doc.data().word) {
          let definition = 'unknown';
          let audio = 'unknown';
          try {
            if(doc.data().hasOwnProperty('meanings')) {
              if(doc.data().meanings[0].hasOwnProperty('definitions')) {
                  definition = doc.data().meanings[0].definitions[0].definition;
              }
            }
            if(doc.data().hasOwnProperty('phonetics')) {
              if(doc.data().phonetics.length > 0)
                audio = doc.data().phonetics[0].audio;
            }
          } catch (error) {
            console.log(error);
          }

          let obj = {
            word: doc.data().word,
            answer: doc.data().word.split("").join(" "),
            definition: definition,
            audio: audio
          }
          VocabularyList.push(obj);
      }
      // Shuffle the array
      let currentIndex = VocabularyList.length, temporaryValue, randomIndex;
      while (0 !== currentIndex) {
        randomIndex = Math.floor(Math.random() * currentIndex);
        currentIndex -= 1;
        temporaryValue = VocabularyList[currentIndex];
        VocabularyList[currentIndex] = VocabularyList[randomIndex];
        VocabularyList[randomIndex] = temporaryValue;
      }
      conv.session.params.vocabWord = VocabularyList;
      conv.session.params.vocabWordIndex = 0;
    });
  });
})

Ricevere una parola dalla sessione dell'assistente

Puoi scrivere una funzione Cloud Functions che restituisce la parola successiva da scrivere correttamente dall'elenco di parole.

Nel file index.js, sostituisci il TODO per getSpellingWord con quanto segue:

index.js

// Returns a spelling practice word to Google Assistant and uses Speech Synthesis Markup Language (SSML) to format the response
app.handle('getSpellingWord',  conv => {
  if (!conv.session.params.vocabWord.empty) {
    conv.session.params.vocabWordIndex+=1;
    const ssml = '<speak>' +
    '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word.</audio> ' +
    '</speak>';
    conv.add(ssml);
  }
  else
    conv.add('Great job! You completed the Spelling practice');
});

Consenti al gioco di ripetere la parola

Puoi scrivere una funzione Cloud Functions che ripete la parola corrente per il gioco.

Nel file index.js, sostituisci il TODO per repeatSpellingWord con quanto segue:

index.js

// Returns current spelling word
app.handle('repeatSpellingWord',  conv => {
  if (!conv.session.params.vocabWord.empty) {
    const ssml = '<speak>' +
    '<audio src="'+ conv.session.params.vocabWord[conv.session.params.vocabWordIndex].audio +'">Use phonetics to spell the word. </audio> ' +
    '</speak>';
    conv.add(ssml);
  }
  else
    conv.add('Great job! You completed the Spelling practice');
});

Ricevi la definizione della parola

Puoi scrivere una funzione Cloud Functions che fornisca la definizione della parola corrente per il gioco.

Nel file index.js, sostituisci il TODO per definitionOfSpellingWord con quanto segue:

index.js

// Returns spelling word definition from Assistant session parameter
app.handle('definitionOfSpellingWord',  conv => {
  conv.add( 'It means ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].definition);
});

Controlla la risposta ortografica dell'utente

Puoi scrivere una funzione Cloud Functions che verifichi la risposta dell'utente su come si scrive la parola corrente del gioco.

Nel file index.js, sostituisci il TODO per verifySpellingWord con quanto segue:

index.js

// Verifies user spelling response
app.handle('verifySpellingWord', conv => {
  try {
    userResponse = conv.intent.params.userresponse.resolved.join("");
    if (userResponse.toLowerCase() === conv.session.params.vocabWord[conv.session.params.vocabWordIndex].word.toLowerCase()) {
      conv.add('You are correct. Say next to continue.');
    }
    else {
      conv.add('Sorry, wrong answer. The correct answer is ' + conv.session.params.vocabWord[conv.session.params.vocabWordIndex].answer + ' . Say next to continue.');
    }
  } catch (error) {
    conv.add('Sorry. I did not understand your response' );
  }
});
exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);

Esegui il deployment di tutte le funzioni

Le tue Cloud Functions saranno attive solo dopo il deployment su Firebase.

Dalla radice della directory spelling-functions-start, esegui questo comando:

$ firebase deploy --only functions

Questo è l'output della console che dovresti vedere:

i  deploying functions
i  functions: ensuring necessary APIs are enabled...
⚠  functions: missing necessary APIs. Enabling now...
i  env: ensuring necessary APIs are enabled...
⚠  env: missing necessary APIs. Enabling now...
i  functions: waiting for APIs to activate...
i  env: waiting for APIs to activate...
✔  env: all necessary APIs are enabled
✔  functions: all necessary APIs are enabled
i  functions: preparing functions directory for uploading...
i  functions: packaged functions (X.XX KB) for uploading
✔  functions: functions folder uploaded successfully
i  starting release process (may take several minutes)...
i  functions: creating function createSpellingPracticeWord(us-central1)...
✔  functions[createSpellingPracticeWord(us-central1)]: Successful create operation.
i  functions: creating function ActionsOnGoogleFulfillment(us-central1)...
✔  functions[ActionsOnGoogleFulfillment(us-central1)]: Successful create operation.

✔  Deploy complete!
Project Console: https://console.firebase.google.com/project/spelling-practice-1234/overview

Prendi nota dell'URL dell'endpoint HTTP della funzione ActionsOnGoogleFulfillment per utilizzarlo in un secondo momento. Per ottenere l'endpoint, apri la console Firebase e fai clic sul progetto spelling-practice. Apri la dashboard Functions per visualizzare l'endpoint delle funzioni.

332cb0437411a242.png

Hai completato l'aggiunta di tutte le funzioni richieste. Ora passiamo alla configurazione di Cloud Firestore.

8. Attiva Cloud Firestore

Devi abilitare Cloud Firestore.

Nella sezione Build della console Firebase, fai clic su Firestore. Quindi, fai clic su Crea database.

5c0b4abf4410ffcf.png

L'accesso ai dati in Cloud Firestore è controllato dalle regole di sicurezza. Per iniziare, devi impostare alcune regole di base sui dati. Fai clic su Firestore e poi nella scheda Regole della console Firebase, aggiungi le seguenti regole, quindi fai clic su Pubblica.

Le seguenti regole limitano l'accesso ai dati agli utenti che hanno eseguito l'accesso, impedendo agli utenti non autenticati di leggere o scrivere.

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      //
      // WARNING: These rules are insecure! We will replace them with
      // more secure rules later in the codelab
      //
      allow read, write: if request.auth != null;
    }
  }
}

9. Aggiungere dati di parole di ortografia a Cloud Firestore

In questo passaggio, scriverai i dati delle parole di ortografia in Cloud Firestore in modo da poter generare un elenco di parole per l'assistente (e per il gioco).

I dati di Cloud Firestore sono strutturati in raccolte, documenti, campi e raccolte secondarie. Ogni parola del gioco verrà archiviata come documento separato in una raccolta di primo livello chiamata wordlist. Per ogni nuovo documento nella raccolta Firestore, viene attivata la funzione createSpellingPracticeWord per ottenere i dettagli della parola dal servizio API Dictionary.

Crea una raccolta Cloud Firestore

  1. Nella console Firebase, vai alla sezione Cloud Firestore.
  2. Fai clic su + Avvia raccolta.
  3. Nella casella di testo ID raccolta, inserisci wordlist e poi fai clic su Avanti.

1b4ccadb90f52f02.png

A questo punto, creiamo un documento per la parola accordo.

  1. Nella casella di testo ID documento, inserisci agreement.
  2. Nella casella di testo Campo, inserisci word e nella casella di testo Valore inserisci agreement.
  3. Fai clic su Salva.

379037e011e8511e.png

Quando aggiungi questo documento a Cloud Firestore, viene attivata la funzione createSpellingPracticeWord per recuperare i dettagli della definizione della parola. Aggiungi altre parole (ad esempio: stupore, auto, vero, dire, meglio, tragitto casa-lavoro...) creando un nuovo documento per ogni parola.

10. Configurare l'Assistente Google

Le sezioni seguenti descrivono come configurare l'ambiente di sviluppo dell'Assistente Google e creare il progetto Azioni.

Verifica le impostazioni delle autorizzazioni Google

Per testare l'azione che crei in questo codelab, devi abilitare le autorizzazioni necessarie in modo che il simulatore possa accedere all'azione. Per attivare le autorizzazioni:

  1. Vai alla pagina Gestione attività.
  2. Accedi con il tuo Account Google, se non l'hai ancora fatto.
  3. Attiva le seguenti autorizzazioni:
  • Attività web e app
  • In Attività web e app, seleziona la casella di controllo accanto a Includi la cronologia di Chrome e le attività svolte su siti, app e dispositivi che usano i servizi Google.

c988e1e639e6d6e1.png

crea un progetto Actions

Il progetto Actions è un contenitore per l'Azione. Per creare il progetto Azioni per questo codelab:

  1. Apri la console Azioni.
  2. Fai clic su Nuovo progetto.
  3. Accetta i Termini di servizio

b174d45710b8086b.png

  1. Digita o seleziona spelling-practice-codelab che hai creato utilizzando la console Firebase. Il nome è per riferimento interno. In un secondo momento, potrai impostare un nome esterno per il progetto.)

a2951de5d2001fac.png

  1. Fai clic su Importa progetto.
  2. Nella schermata Che tipo di azione vuoi creare?, seleziona la scheda Personalizzata.
  3. Fai clic su Avanti.
  4. Seleziona la scheda Progetto vuoto.
  5. Fai clic su Inizia a creare.
  6. Inserisci Esercizio di ortografia come nome visualizzato e fai clic su Salva.

Gli utenti avviano la conversazione con la tua azione tramite l'invocazione. Ad esempio, gli utenti possono richiamare l'azione dicendo una frase come "Hey Google, parla con Esercizi di ortografia", dove Esercizi di ortografia è il nome visualizzato.

La tua Azione deve avere un nome visualizzato se vuoi eseguirne il deployment in produzione. Tuttavia, per testarla, non è necessario definire il nome visualizzato. In alternativa, puoi utilizzare la frase "Parla con la mia app di prova" nel simulatore per richiamare l'Azione.

Configura fulfillment

Devi connettere all'assistente i gestori di eventi per le Cloud Functions che hai scritto e di cui hai eseguito il deployment in precedenza in questo codelab.

Per configurare l'evasione, segui questi passaggi:

  1. Fai clic su Webhook nel riquadro di navigazione laterale.
  2. Seleziona Endpoint HTTPS come opzione di evasione:

d523bf003e96e66f.png

  1. Inserisci l'URL dell'endpoint della funzione nella casella di testo Endpoint HTTPS, poi fai clic su Salva.

be53e2cd0d914d54.png

Nella sezione successiva, personalizzerai il prompt per l'invocazione principale nella console Azioni.

Configurare la chiamata principale

Devi modificare l'invocazione principale per definire cosa succede dopo che un utente invoca la tua azione.

Per impostazione predefinita, Actions Builder fornisce un prompt generico quando viene attivata l'invocazione ("Inizia a creare la tua azione definendo l'invocazione principale").

Per modificare il prompt che l'azione invia all'utente quando la richiama, segui questi passaggi:

  1. Fai clic su Richiamo principale nel menu di navigazione.

9ff088c04c995cde.png

  1. Seleziona Call your webhook e aggiungi il nome del gestore eventi getSpellingWordList nella casella di testo.
  2. Nell'editor di codice, sostituisci il testo nel campo speech con il seguente messaggio di benvenuto: Welcome to Spelling Practice

Nota:puoi utilizzare la formattazione YAML o JSON per modificare i prompt.

  1. Fai clic su Salva.

Testare la chiamata principale nel simulatore

La console Azioni fornisce uno strumento web per testare l'azione chiamato simulatore. L'interfaccia simula i dispositivi hardware e le relative impostazioni, in modo da poter conversare con l'azione come se fosse in esecuzione su uno smart display, uno smartphone, uno speaker o KaiOS.

Per testare la chiamata principale dell'azione nel simulatore:

  1. Nella barra di navigazione in alto, fai clic su Test per andare al simulatore.
  2. Per richiamare l'Azione nel simulatore, digita Talk to Spelling Practice nel campo di input in alto a sinistra, quindi premi Invio sulla tastiera.

651fc8da1ac9aa0a.png

Quando attivi la chiamata principale dell'azione, l'assistente risponde con il tuo messaggio di benvenuto personalizzato. A questo punto, la conversazione termina dopo che l'assistente risponde con un saluto.

Visualizzare i log eventi

Quando ti trovi nella scheda Test, il riquadro a destra mostra i log eventi, che visualizzano la cronologia della conversazione come log eventi. Ogni log degli eventi mostra gli eventi che si verificano durante il turno della conversazione. Per visualizzare il log eventi, fai clic sull'icona grigia prima dell'evento.

La tua azione ha attualmente un log eventi, che mostra sia l'input dell'utente ("Parla con Esercizi di ortografia") sia la risposta dell'azione. Lo screenshot seguente mostra il log eventi dell'Azione:

a6fb192f94426824.png

11. Creare la conversazione per Esercizi di ortografia

Ora che hai definito cosa succede dopo che un utente richiama l'azione, puoi creare il resto della conversazione dell'azione. Esercizio di ortografia ha quattro scene e devi attivare ciascuna scena prima che possa essere eseguita. Il modo più comune per attivare una scena è configurare l'azione in modo che, quando un utente corrisponde a un intento utente all'interno di una scena, questo intento attivi la transizione a un'altra scena e la attivi.

Transizione dall'invocazione principale alla scena iniziale

In questa sezione, crea una nuova scena chiamata Start, che invia un prompt all'utente chiedendogli se vuole iniziare a giocare a Esercizi di ortografia. Aggiungi anche una transizione dall'invocazione principale alla nuova scena Start.

Per creare questa scena e aggiungere una transizione, segui questi passaggi:

  1. Fai clic su Sviluppa nella barra di navigazione in alto. Poi, fai clic su Richiamo principale nel riquadro di navigazione a sinistra.
  2. Nella sezione Transizione a destra, fai clic sul menu a discesa e poi digita Start nel campo di testo.

dd4f1807a57f794d.png

  1. Fai clic su Aggiungi. Viene creata una scena chiamata Start e viene indicato all'azione di passare alla scena Start dopo che l'azione ha inviato il prompt di benvenuto all'utente.
  2. Fai clic su Scene nel riquadro di navigazione a sinistra per visualizzare l'elenco delle scene.
  3. In Scene, fai clic su Avvia per visualizzare la scena Start.
  4. Fai clic su + nella sezione All'ingresso della scena Start.
  5. Seleziona Invia prompt.
  6. Sostituisci la frase nel campo speech (Enter the response that users will see or hear...) con una domanda da porre all'utente: Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?

I chip di suggerimento offrono suggerimenti su cui l'utente può fare clic e che l'azione elabora come input dell'utente. In questa sezione, aggiungi i chip di suggerimento che vengono visualizzati sotto il prompt appena configurato (Do you want to play

Spelling Practice

?) per supportare gli utenti sui dispositivi con schermi.

Per aggiungere chip di suggerimento al prompt della scena Start:

  1. Nella scena Start, fai clic sui suggerimenti sotto l'editor di codice. Questa azione aggiunge un singolo chip di suggerimento.
  2. Nel campo title, sostituisci Suggested Response con 'Yes'.
  3. Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento con il titolo 'No' e 'Help with Phonetics'. Il tuo codice dovrebbe essere simile al seguente snippet:
  4. Fai clic su Salva.

5ff2ecdc56801b91.png

Testare l'azione nel simulatore

A questo punto, l'azione deve passare dall'invocazione principale alla scena Start e chiedere all'utente se vuole continuare. I chip di suggerimento dovrebbero essere visualizzati anche nel display simulato.

Per testare l'azione nel simulatore:

  1. Nella barra di navigazione, fai clic su Test per accedere al simulatore.
  2. Per testare l'Azione nel simulatore, digita Talk to Spelling Practice nel campo Input.
  3. Premi Invio. L'Azione deve rispondere con il prompt Main invocation e il prompt della scena Start aggiunto, "Ti diamo il benvenuto in Esercizi di ortografia. Usa l'alfabeto fonetico per comporre la parola. Ad esempio, alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?"

Il seguente screenshot mostra questa interazione:

338c9570b02a618e.png

  1. Fai clic sul chip di suggerimento Yes, No o Help with Phonetics per rispondere al prompt. Puoi anche dire "Sì" o "No" o "Aiuto con la fonetica" o inserire Yes o No o Help with Phonetics nel campo Input.

Quando rispondi al prompt, l'Azione risponde con un messaggio che indica che non riesce a comprendere il tuo input: "Mi dispiace, non ho capito. Puoi riprovare?" Poiché non hai ancora configurato l'azione in modo che comprenda e risponda all'input "Sì" o "No", l'azione associa il tuo input a un intent NO_MATCH.

Per impostazione predefinita, l'intent di sistema NO_MATCH fornisce risposte generiche, ma puoi personalizzarle per indicare all'utente che non hai compreso il suo input. L'assistente termina la conversazione dell'utente con la tua azione dopo che non riesce a trovare una corrispondenza per l'input dell'utente per tre volte.

Aggiungere intenti di negazione e fonetica

Ora che gli utenti possono rispondere alla domanda posta dall'azione, puoi configurarla in modo che comprenda le risposte degli utenti ("Sì", "No" o "Aiuto con la fonetica"). Nelle sezioni seguenti, crea intent utente che vengono abbinati quando l'utente dice "Sì" o "No" o "Aiuto con la fonetica" e aggiungi questi intent alla scena Start. Utilizzeremo l'intent di sistema yes e creeremo altri intent.

Crea intent no

Ora devi creare l'intent no per comprendere e rispondere all'utente quando non vuole giocare. Per creare questo intent, segui questi passaggi:

  1. Fai clic su Sviluppa nel menu di navigazione.
  2. Fai clic su Intent personalizzati nella navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent. Assegna un nome al nuovo intent no e premi Invio.
  4. Fai clic su No per aprire la pagina dell'intent no.
  5. Nella sezione Aggiungi frasi di addestramento, fai clic nella casella di testo Inserisci frase e inserisci le seguenti frasi:
  • No
  • N
  • I don't want
  • nope

98b0c9a7b67ea9b9.png

  1. Fai clic su Salva.

Aggiungi l'intent no alla scena Start

Ora, l'azione può capire quando un utente esprime un "no" o qualcosa di simile a "no", come "no". Devi aggiungere l'intent utente no alla scena Start perché l'utente sta rispondendo al prompt Start ("Benvenuto in Esercizi di ortografia. Usa l'alfabeto fonetico per comporre la parola. Ad esempio, alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?").

Per aggiungere questo intent per la scena Start:

  1. Fai clic sulla scena Inizia nella navigazione.
  2. Fai clic su + (segno più) nella scena Start accanto a Gestione dell'intent dell'utente.
  3. Nella sezione Scopo, seleziona No nel menu a discesa.

51f752e78c8b4942.png

  1. Fai clic su Invia prompt e aggiorna il campo speech con il seguente testo: Good Bye.

Il codice nell'editor dovrebbe essere simile al seguente snippet:

candidates:
  - first_simple:
      variants:
        - speech: >-
             Goodbye.
  1. Nella sezione Transizione, seleziona Termina conversazione dal menu a discesa.
  2. Fai clic su Salva.

Testa l'intent no nel simulatore

A questo punto, l'azione capisce quando l'utente non vuole giocare e restituisce la risposta appropriata.

Per testare questo intent nel simulatore:

  1. Nella barra di navigazione, fai clic su Test.
  2. Digita Talk to Spelling Practice nel campo Input e premi Enter.
  3. Digita No nel campo Input e premi Invio. In alternativa, fai clic sul chip Nessun suggerimento.

7727a456b522f31b.png

Aggiungi l'intent di sistema YES alla scena Start

Ora aggiungiamo l'intent SYSTEM "YES" alla scena Start, poiché l'utente risponde sì al prompt Start ("Benvenuto in Esercizi di ortografia. Usa l'alfabeto fonetico per comporre la parola. Ad esempio, alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?").

Per aggiungere questo intento dell'utente alla scena Start, segui questi passaggi:

  1. Fai clic sulla scena Inizia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Start accanto a Gestione dell'intent dell'utente.
  3. In Tutti gli intent di sistema, seleziona nel menu a discesa degli intent.

f6cbe789cde49e8f.png

  1. Fai clic su Chiama il webhook e aggiorna la casella di testo event handler con la funzione creata in precedenza: getSpellingWordList
  2. Nella sezione Transizione, fai clic sul menu a discesa e seleziona Termina conversazione.
  3. Fai clic su Salva.

Testa l'intent YES nel simulatore

A questo punto, l'azione comprende quando l'utente vuole giocare e restituisce la risposta appropriata.

Per testare questo intent nel simulatore:

  1. Nella barra di navigazione, fai clic su Test.
  2. Per testare l'Azione nel simulatore, digita Talk to Spelling Practice nel campo Input e premi Invio.
  3. Digita Yes nel campo Input e premi Invio. In alternativa, fai clic sul chip di suggerimento Yes.

L'azione recupera un elenco di tutte le parole per l'esercizio di ortografia e le memorizza nella sessione. L'azione termina la sessione perché hai selezionato la transizione End conversation per l'intent YES.

Crea intent Phonetics

Per creare l'intent Phonetics:

  1. Fai clic su Sviluppa nel menu di navigazione.
  2. Fai clic su Intent personalizzati nella navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent. Assegna un nome al nuovo intent phonetics e premi Enter.
  4. Fai clic sull'intent phonetics per aprire la pagina dell'intent phonetics.
  5. Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
  • how do I spell words
  • phonetics
  • help me with phonetics
  • phonetic alphabet

1455bdfca8dae46.png

  1. Fai clic su Salva.

Aggiungi l'intent phonetics alla scena Start

Ora, l'azione può comprendere quando un utente esprime un intento "fonetico". Puoi aggiungere l'intent utente phonetics alla scena Start, poiché l'utente sta rispondendo al prompt Start ("Benvenuto in Esercizi di ortografia. Usa l'alfabeto fonetico per comporre la parola. Ad esempio, alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?").

Per aggiungere questo intento dell'utente alla scena Start, segui questi passaggi:

  1. Fai clic sulla scena Inizia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Start accanto a Gestione dell'intent dell'utente.
  3. Seleziona fonetica nel menu a discesa dell'intent.

67ee2e08000b2aee.png

  1. Nella sezione Transizione, fai clic sul menu a discesa e seleziona Termina conversazione.
  2. Fai clic su Salva.

Transizione dalla scena Inizia alla scena Ortografia

In questa sezione, crea una nuova scena chiamata Spelling, che invia all'utente un prompt per compitare la parola utilizzando l'alfabeto fonetico.

Per creare questa scena e aggiungere una transizione, segui questi passaggi:

  1. Fai clic su Sviluppa nella barra di navigazione in alto. Poi, fai clic sulla scena Inizia nel riquadro di navigazione a sinistra.
  2. Nella sezione Gestione dell'intent dell'utente, fai clic su when actions.intent.YES is matched e, a destra, nella sezione Transizione, fai clic sul menu a discesa e digita Spelling nel campo di testo.
  3. Fai clic su Aggiungi. Viene creata una scena chiamata Spelling e viene indicato all'azione di passare alla scena Spelling dopo la corrispondenza con l'intent YES.
  4. Espandi Scene nella barra di navigazione a sinistra per visualizzare l'elenco delle scene.
  5. Nella sezione Scene, fai clic su Ortografia per visualizzare la scena Spelling.
  6. Fai clic su + nella sezione All'ingresso della scena Spelling.
  7. Fai clic su Chiama il webhook e inserisci getSpellingWord nella casella di testo del gestore eventi.
  8. Seleziona Invia prompt.
  9. Sostituisci la frase nel campo speech (Enter the response that users will see or hear...) con {}. Il prompt effettivo verrà compilato dal webhook.

I chip di suggerimento offrono suggerimenti su cui l'utente può fare clic e che l'azione elabora come input dell'utente.

Per aggiungere chip di suggerimento al prompt della scena Spelling:

  1. Nella scena Spelling, fai clic sui suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento.
  2. Nel campo title, sostituisci Suggested Response con 'Repeat'.
  3. Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento intitolato 'Skip'.
  4. Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento intitolato 'Quit'. Il tuo codice dovrebbe essere simile al seguente snippet:
  5. Fai clic su Salva.
suggestions:
      - title: 'Repeat'
      - title: 'Skip'
      - title: 'Quit'

e1d437f714ea1539.png

Crea intent Repeat

Per creare l'intent repeat:

  1. Fai clic su Sviluppa nel menu di navigazione.
  2. Fai clic su Intent personalizzati nella navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent. Assegna un nome al nuovo intent repeat e premi Enter.
  4. Fai clic sull'intent repeat per aprire la pagina dell'intent definition.
  5. Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
  • one more time please
  • say the word again
  • repeat the word
  • tell me again
  • repeat

e61f0b9f80510bc9.png

  1. Fai clic su Salva.

Aggiungi l'intent repeat alla scena Spelling

Ora l'azione può comprendere quando un utente esprime l'intenzione di "ripetere". Puoi aggiungere l'intent utente repeat alla scena Spelling, poiché l'utente sta rispondendo al prompt Spelling ("Scrivi la parola usando l'alfabeto fonetico").

Per aggiungere questo intento dell'utente alla scena Spelling, segui questi passaggi:

  1. Fai clic sulla scena Ortografia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Spelling accanto a Gestione dell'intent dell'utente.
  3. Seleziona ripeti nel menu a discesa dell'intent.

5cfd623b25bedbed.png

  1. Seleziona Chiama il webhook e inserisci repeatSpellingWord nella casella di testo del gestore di eventi per ottenere la definizione della parola.
  2. Seleziona Invia prompt.
  3. Sostituisci la frase nel campo speech (Enter the response that users will see or hear...) con "'". Il prompt effettivo verrà compilato dal webhook.

Aggiungere chip di suggerimenti a "Quando viene trovata una ripetizione"

  1. In "Quando viene rilevato un intento ripetuto" nella sezione Gestione dell'intento dell'utente, fai clic su Suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento.
  2. Nel campo title, sostituisci Suggested Response con 'Skip'.
  3. Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento intitolato 'Quit'.Il codice dovrebbe essere simile al seguente snippet:
suggestions:
      - title: 'Skip'
      - title: 'Quit'

ab40e4b0c432b97c.png

  1. Fai clic su Salva.

Crea intent definition

Per creare l'intent definition:

  1. Fai clic su Sviluppa nel menu di navigazione.
  2. Fai clic su Intent personalizzati nella navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent. Assegna un nome al nuovo intent definition e premi Enter.
  4. Fai clic sull'intent definition per aprire la pagina dell'intent definition.
  5. Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
  • I would like to know the definition
  • tell me the definition
  • what does it mean
  • meaning
  • definition
  • what is the definition?

c1b88a9c0b1ac082.png

  1. Fai clic su Salva.

Aggiungi l'intent definition alla scena Spelling

Ora, l'Azione può capire quando un utente esprime l'intento di "definizione". Puoi aggiungere l'intent utente definition alla scena Spelling, poiché l'utente sta rispondendo al prompt Spelling ("Scrivi la parola usando l'alfabeto fonetico").

Per aggiungere questo intento dell'utente alla scena Spelling, segui questi passaggi:

  1. Fai clic sulla scena Ortografia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Spelling accanto a Gestione dell'intent dell'utente.
  3. Seleziona definizione nel menu a discesa dell'intent.

646bdcac3ad3eb0c.png

  1. Seleziona Chiama il webhook e inserisci definitionOfSpellingWord nella casella di testo del gestore eventi per ottenere la definizione della parola.
  2. Seleziona Invia prompt.
  3. Sostituisci la frase nel campo speech (Enter the response that users will see or hear...) con "`. Il prompt effettivo verrà compilato dal webhook.

Aggiungere chip di suggerimenti alla risposta del webhook

  1. Nella scena Start, fai clic su Suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento.
  2. Nel campo title, sostituisci Suggested Response con 'Skip'.
  3. Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento intitolato 'Quit'.Il codice dovrebbe essere simile al seguente snippet:
suggestions:
      - title: 'Skip'
      - title: 'Quit'

25227545839d933f.png

  1. Fai clic su Salva.

Crea intent skip

Per creare l'intent skip:

  1. Fai clic su Sviluppa nel menu di navigazione.
  2. Fai clic su Intent nella navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent. Assegna un nome al nuovo intent skip e premi Enter.
  4. Fai clic sull'intent skip per aprire la pagina dell'intent skip.
  5. Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
  • next word
  • go next
  • next
  • skip
  • skip word

d1c4908a3d7882f8.png

  1. Fai clic su Salva.

Aggiungi l'intent Skip alla scena Spelling

Ora, l'azione può capire quando un utente esprime l'intenzione di "saltare". Puoi aggiungere l'intent utente skip alla scena Spelling, poiché l'utente sta rispondendo al prompt Spelling ("Scrivi la parola usando l'alfabeto fonetico").

Per aggiungere questo intento dell'utente alla scena Spelling, segui questi passaggi:

  1. Fai clic sulla scena Ortografia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Spelling accanto a Gestione dell'intent dell'utente.
  3. Seleziona Salta nel menu a discesa dell'intent.

5465f97542217964.png

  1. Nella sezione Transizione a destra, fai clic sul menu a discesa e seleziona Spelling .

c8072485ca82bd3f.png

  1. Fai clic su Salva.

Crea intent quit

Per creare l'intent Quit:

  1. Fai clic su Sviluppa nel menu di navigazione.
  2. Fai clic su Intent nella navigazione per aprire l'elenco degli intent.
  3. Fai clic sul segno più (+) alla fine dell'elenco di intent. Assegna un nome al nuovo intent Quit e premi Enter.
  4. Fai clic sull'intent Quit per aprire la pagina dell'intent definizione.
  5. Nella sezione Aggiungi frasi di addestramento, fai clic sulla casella di testo Inserisci frase e inserisci le seguenti frasi:
  • I quit
  • Goodbye
  • Cancel
  • Exit
  • Quit

9916f77b8766541e.png

  1. Fai clic su Salva.

Aggiungi l'intent Quit alla scena Spelling

Ora l'azione può capire quando un utente esprime l'intenzione di "uscire". Puoi aggiungere l'intent utente quit alla scena Spelling, poiché l'utente sta rispondendo al prompt Spelling ("Scrivi la parola usando l'alfabeto fonetico").

Per aggiungere questo intento dell'utente alla scena Spelling, segui questi passaggi:

  1. Fai clic sulla scena Ortografia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Spelling accanto a Gestione dell'intent dell'utente.
  3. Seleziona Esci nel menu a discesa dell'intent.

5f62fb18a3653d66.png

  1. Nella sezione Transizione a destra, fai clic sul menu a discesa e seleziona End conversation . 1ffbe35a7bbbb4b0.png
  2. Fai clic su Salva.

Crea tipo phonetic_alphabet

In questa sezione, crei un nuovo tipo chiamato phonetic_alphabet, che specifica le opzioni dell'alfabeto fonetico che gli utenti possono scegliere per scrivere la parola. Puoi anche definire alcuni sinonimi per queste opzioni nel caso in cui un utente dica qualcosa di simile. In una sezione successiva, aggiungi il tipo phonetic_alphabet a uno slot per specificare che vuoi ottenere la risposta dell'utente.

Per creare il tipo phonetic_alphabet:

  1. Fai clic su Sviluppa nel menu di navigazione.
  2. Fai clic sul segno più (+) in Tipi.
  3. Digita phonetic_alphabet e premi Enter.
  4. Fai clic su phonetic_alphabet per aprire le opzioni.
  5. Nella sezione Quale tipo di valori supporterà questo tipo?, seleziona l'opzione Parole e sinonimi.
  6. Inserisci le seguenti voci e i valori corrispondenti nella sezione Aggiungi voci:

a

alpha, apple, amsterdam

b

bravo, butter, baltimore

c

charlie, cat, casablanca

d

delta, dog, denmark

s

echo, edward, edison

f

foxtrot, fox, florida

g

golf, george, gallipoli

h

hotel, harry, havana

i

india, ink, italia

j

juliette, johnny, jerusalem

k

kilo, king, kilogramme

l

lima, love, london

m

mike, money, madagascar

n

novembre, new york, nancy

o

oscar, orange, oslo

p

papa, paris, peter

q

quebec, queen

r

romeo, roma, robert

s

sierra, sugar, santiago

t

tango, tommy, tripoli

u

uniform, umbrella, uncle

v

victor, vinegar, Valencia

w

whiskey, william, washington

x

x-ray

y

yankee, yellow, yorker

z

zulu, zebra, zurich

La tabella chiave-valore dovrebbe avere il seguente aspetto:

5b5a5cd9fa557e1b.png

  1. Fai clic su Salva.

Configura il riempimento degli slot

Successivamente, devi configurare il riempimento degli slot nella scena Ortografia. Per configurare la logica di compilazione degli slot:

  1. Fai clic sulla scena Ortografia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Spelling per il riempimento degli slot.
  3. Nel campo Inserisci nome slot, aggiungi userresponse come nome dello slot.
  4. Nel menu a discesa Seleziona tipo, seleziona phonetic_alphabet come tipo di slot.
  5. Seleziona Questo slot accetta un elenco di valori.
  6. Seleziona Questo spazio è obbligatorio.
  7. Seleziona l'opzione Scrittura di valori di slot personalizzati e inserisci userresponse nella casella di testo del parametro sessione.

ba57a419877a07f3.png

  1. Fai clic su Salva.

Aggiungi condizione alla schermata Spelling

Per aggiungere una condizione alla scena Spelling:

  1. Fai clic sulla scena Ortografia nella navigazione.
  2. Fai clic sul segno più (+) nella scena Spelling accanto a Condizione.
  3. Inserisci scene.slots.status == "FINAL" come condizione
  4. Seleziona Chiama il webhook e inserisci verifySpellingWord nella casella di testo del gestore di eventi per verificare la risposta dell'utente.
  5. Seleziona Invia prompt.
  6. Sostituisci la frase nel campo speech (Enter the response that users will see or hear...) con {}. Il prompt effettivo verrà compilato dal webhook.

Aggiungere chip di suggerimenti alla risposta del webhook

  1. Nella scena Start, fai clic su Suggerimenti sotto l'editor di codice. Questa azione aggiunge tre chip di suggerimento.
  2. Nel campo title, sostituisci Suggested Response con 'Next'.
  3. Utilizzando la stessa formattazione, aggiungi manualmente un chip di suggerimento intitolato 'Quit'.Il codice dovrebbe essere simile al seguente snippet:
suggestions:
      - title: 'Next'
      - title: 'Quit'

ac3d7a9366ebc1b1.png

  1. Fai clic su Salva.

12. Testare l'esercizio di ortografia nel simulatore

Per testare l'azione nel simulatore:

  1. Nella barra di navigazione, fai clic su Test per accedere al simulatore.
  2. Per testare l'Azione nel simulatore, digita Talk to Spelling Practice nel campo Input.
  3. Premi Invio. L'Azione deve rispondere con il prompt Main invocation e il prompt della scena Start aggiunto, "Ti diamo il benvenuto in Esercizi di ortografia. Usa l'alfabeto fonetico per comporre la parola. Ad esempio, alpha per a, bravo per b, charlie per c e così via. Vuoi continuare?"
  4. Di' per continuare.
  5. Il simulatore riprodurrà un suono di parola da scrivere
  6. Puoi fare lo spelling della parola utilizzando gli alfabeti fonetici. Ad esempio, per better (meglio) di' o digita "bravo echo tango tango echo romeo".
  7. Il simulatore risponderà con la risposta corretta o errata.
  8. Pronuncia avanti per passare alla parola successiva o esci per uscire dal ciclo di gioco.

13. Complimenti

Congratulazioni, hai creato il tuo gioco, Esercizi di ortografia.

Ora conosci i passaggi chiave necessari per creare un gioco utilizzando Cloud Firestore, Cloud Functions e Google Assistant Action Builder.

Argomenti trattati

  • Come interagire con Cloud Firestore
  • Come utilizzare gli slot per raccogliere dati dall'utente
  • Come elaborare l'input di un utente e restituire una risposta
  • Come utilizzare le condizioni per aggiungere logica a una scena
  • Come aggiungere un ciclo di gioco

Risorse didattiche aggiuntive

Puoi esplorare queste risorse per scoprire come creare Azioni per l'Assistente Google:

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 e le risorse Firebase, completa i passaggi elencati nella sezione Chiusura (eliminazione) dei progetti.

Attenzione: assicurati di selezionare il progetto corretto da eliminare nella pagina Impostazioni della console Google Cloud.

  1. (Facoltativo) Per rimuovere immediatamente il progetto dalla console di Actions, completa i passaggi elencati nella sezione Eliminare un progetto. Se non completi questo passaggio, il tuo progetto verrà rimosso automaticamente dopo circa 30 giorni.

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