Jeu de pratique d'orthographe utilisant Google Assistant et Cloud Firestore

1. Vue d'ensemble

La plate-forme de développement Google Assistant vous permet de créer un logiciel pour étendre les fonctionnalités de Google Assistant, un assistant personnel virtuel, sur plus d'un milliard d'appareils, notamment des haut-parleurs intelligents, des téléphones, des voitures, des téléviseurs, des écouteurs, etc. Les utilisateurs engagent une conversation avec l'Assistant pour accomplir des tâches, comme faire des courses ou réserver un trajet. En tant que développeur, vous pouvez utiliser la plateforme de développement Assistant pour créer et gérer facilement des expériences conversationnelles agréables et efficaces entre les utilisateurs et votre propre service de traitement des commandes tiers.

Cet atelier de programmation couvre les concepts de niveau intermédiaire pour le développement avec Google Assistant, Cloud Functions et Cloud Firestore. Dans cet atelier de programmation, vous allez créer un jeu appelé "Spelling Practice" qui utilise l'Assistant Google pour demander aux utilisateurs d'épeler des mots.

Ce que vous construirez

Dans cet atelier de programmation, vous allez créer un jeu sophistiqué avec les fonctionnalités suivantes :

  • Reçoit les réponses orthographiques de l'utilisateur et, en fonction de la valeur, modifie les invites conversationnelles
  • Répond avec des indices liés à l'orthographe du mot, comme sa définition ou la répétition du mot
  • Crée une boucle de jeu afin qu'un utilisateur puisse à nouveau interagir avec l'Assistant après avoir épelé le mot

Avant de commencer à créer, vous pouvez interagir avec l' action en direct sur votre appareil compatible avec l'Assistant Google en disant "Hey Google, parle à Spelling Practice". Le chemin par défaut via cette action pour un utilisateur récurrent ressemble à l'interaction suivante :

Une fois cet atelier de programmation terminé, votre action terminée aura le flux conversationnel suivant :

2e9f94dc0ceafc96.png

Ce que vous apprendrez

  • Comment interagir avec Cloud Firestore
  • Comment utiliser les emplacements pour collecter les données de l'utilisateur
  • Comment traiter la saisie d'un utilisateur et renvoyer une réponse
  • Comment utiliser des conditions pour ajouter de la logique à une scène
  • Comment ajouter une boucle de jeu

Ce dont vous aurez besoin

Les prérequis pour cet atelier de programmation sont les suivants :

  • Un navigateur Web, tel que Google Chrome
  • Un IDE pour écrire des fonctions Cloud.
  • Un moyen de paiement. Cet atelier de programmation utilise Cloud Functions pour Firebase, ce qui nécessite que votre projet soit soumis au plan tarifaire Firebase Blaze ( En savoir plus ).
  • Un terminal pour exécuter des commandes shell
  • Node.js 10 ou version ultérieure

2. Obtenez le code des fonctions

Clonez le dépôt GitHub à partir de la ligne de commande :

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

3. Créez un projet Firebase et configurez votre application

Créer un projet Firebase

  1. Connectez-vous à Firebase .
  2. Dans la console Firebase, cliquez sur Ajouter un projet (ou Créer un projet ), puis nommez votre projet Firebase Spelling-Practice .

66ae8d1894f4477.png

  1. Cliquez sur les options de création de projet. Acceptez les conditions de Firebase si vous y êtes invité. Ignorez la configuration de Google Analytics, car vous n'utiliserez pas Analytics pour cette application.

Pour en savoir plus sur les projets Firebase, consultez Comprendre les projets Firebase .

Mise à niveau vers le plan tarifaire Blaze

Afin d'utiliser Cloud Functions pour Firebase, vous devrez mettre à niveau votre projet Firebase vers le plan tarifaire Blaze , ce qui signifie que vous associerez un compte de facturation Google Cloud à votre projet. Cela nécessite que vous fournissiez une carte de crédit ou un autre mode de paiement.

Tous les projets Firebase, y compris ceux du plan Blaze, ont toujours accès aux quotas d'utilisation gratuits pour Cloud Functions. Les étapes décrites dans cet atelier de programmation respecteront les limites d'utilisation sans frais. Cependant, vous verrez de petits frais ( environ 0,03 $ ) provenant de Cloud Storage, qui est utilisé pour héberger vos images de build Cloud Functions.

4. Installez la CLI Firebase

La CLI Firebase (interface de ligne de commande) vous permet de déployer vos fonctions Cloud.

Il existe plusieurs options pour installer la CLI Firebase en fonction de votre système d'exploitation et de votre cas d'utilisation. Les étapes suivantes décrivent l'option la plus courante si vous utilisez également Cloud Functions.

  1. Assurez-vous d'avoir installé npm qui est généralement fourni avec Node.js .
  2. Installez ou mettez à niveau la CLI en exécutant la commande npm suivante :
$ npm -g install firebase-tools
  1. Vérifiez que la CLI a été correctement installée en exécutant :
$ firebase --version

Assurez-vous que la version de Firebase CLI est 9.0.0 ou ultérieure afin qu'elle dispose de toutes les dernières fonctionnalités requises pour Cloud Functions. Sinon, exécutez npm install -g firebase-tools pour mettre à niveau comme indiqué ci-dessus.

  1. Autorisez la CLI Firebase en exécutant :
$ firebase login
  1. Dans le répertoire orthographe-fonctions-start, configurez la CLI Firebase pour utiliser votre projet Firebase. Exécutez la commande suivante, sélectionnez votre ID de projet, puis suivez les instructions. Lorsque vous y êtes invité, vous pouvez choisir n'importe quel alias, tel qu'un codelab par exemple.
$ firebase use --add

5. Le répertoire des fonctions

Vous allez maintenant ajouter des fonctionnalités à l'aide du SDK Firebase pour Cloud Functions afin de créer le backend du jeu, Spelling Practice .

Cloud Functions vous permet d'avoir du code qui s'exécute dans le cloud sans avoir à configurer de serveur. Cet atelier de programmation vous montrera comment créer des fonctions qui réagissent aux événements d'authentification Firebase, de stockage cloud et de base de données en temps réel Firebase. Commençons par l'authentification.

Lorsque vous utilisez le SDK Firebase pour Cloud Functions, le code de vos fonctions résidera dans le répertoire functions (par défaut). Pour vous faciliter la tâche, nous avons déjà créé le fichier functions/index.js où ira votre code. N'hésitez pas à inspecter le répertoire functions avant de continuer.

$ cd functions
$ ls

Votre code de fonctions est également une application Node.js et nécessite donc un package.json qui donne des informations sur votre application et répertorie les dépendances.

Si vous n'êtes pas familier avec Node.js , il peut être utile d'en apprendre davantage avant de poursuivre l'atelier de programmation.

Le fichier package.json répertorie déjà deux dépendances obligatoires : le SDK Firebase pour Cloud Functions et le SDK Firebase Admin . Pour les installer localement, exécutez npm install depuis le répertoire functions :

$ npm install

Jetons maintenant un œil au fichier 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.

Vous allez d’abord importer les modules requis, puis écrire quatre fonctions à la place des TODO. Passez à l'étape suivante de l'atelier de programmation pour importer les modules.

6. Importez les modules requis

Cet atelier de programmation nécessite trois modules.

  • Le module firebase-functions nous permet d'écrire les déclencheurs de nos Cloud Functions
  • Le module firebase-admin nous permet d'utiliser la plateforme Firebase sur un serveur avec accès administrateur, par exemple pour écrire sur le Cloud Firestore.
  • La bibliothèque de réalisation Node.js du SDK Actions remplit les gestionnaires du SDK Actions pour l'Assistant Google.
  1. Installez le SDK Actions en exécutant la commande npm suivante :
$ npm install @assistant/conversation
  1. Dans le fichier index.js , remplacez le premier TODO par le suivant.

Ces modifications importent chacun des modules requis.

De plus, le SDK Firebase Admin peut être configuré automatiquement lorsqu'il est déployé sur un environnement Cloud Functions ou un autre conteneur Google Cloud. C'est ce qui se passe lorsque nous appelons admin.initializeApp(); dans les changements ci-dessous.

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.

Ajoutons maintenant une logique métier à l'aide de fonctions pour prendre en charge les actions de l'assistant.

7. Créer des fonctions

Obtenez les définitions des mots et écrivez-les dans Cloud Firestore

Vous utiliserez l’API publique dictionaryapi.dev pour obtenir les définitions des mots.

Dans le fichier index.js , remplacez le TODO pour getWordDetailsFromDictionaryAPI par ce qui suit :

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();
}

Ajouter un déclencheur Cloud Firestore

Vous allez ensuite créer une fonction Cloud qui se déclenche chaque fois qu'un nouveau document est créé dans Cloud Firestore. Il appellera l'API dictionaryapi.dev pour obtenir les définitions de mots via la fonction getWordDetailsFromDictionaryAPI que nous avons écrite juste au-dessus.

Dans le fichier index.js , remplacez le TODO pour createSpellingPracticeWord par ce qui suit :

index.js

// Déclencheur Firestore qui récupère les définitions de mots via getWordDetailsFromDictionaryAPI pour chaque nouveau document Firestore

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

Obtenez une liste de mots pour le jeu

Vous pouvez écrire une fonction Cloud qui récupère une liste de mots de pratique d'orthographe à partir de Cloud Firestore pour l'Assistant. Pour cela, nous utilisons le gestionnaire d'application.

Dans le fichier index.js , remplacez le TODO pour getSpellingWordList par ce qui suit.

L'ajout de cette fonction au app.handle spécial est un moyen de rendre la fonction accessible depuis l'Assistant.

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;
    });
  });
})

Recevoir un mot de la session Assistant

Vous pouvez écrire une fonction Cloud qui renvoie le mot orthographique suivant de la liste de mots.

Dans le fichier index.js , remplacez le TODO pour getSpellingWord par ce qui suit :

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');
});

Permettre au jeu de répéter le mot

Vous pouvez écrire une fonction Cloud qui répète le mot actuel du jeu.

Dans le fichier index.js , remplacez le TODO pour repeatSpellingWord par ce qui suit :

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');
});

Obtenez la définition du mot

Vous pouvez écrire une fonction Cloud qui fournit la définition du mot actuel pour le jeu.

Dans le fichier index.js , remplacez le TODO pour definitionOfSpellingWord par ce qui suit :

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);
});

Vérifiez la réponse orthographique de l'utilisateur

Vous pouvez écrire une fonction Cloud qui vérifie la réponse de l'utilisateur sur la façon d'épeler le mot actuel pour le jeu.

Dans le fichier index.js , remplacez le TODO pour verifySpellingWord par ce qui suit :

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);

Déployez toutes vos fonctions

Vos fonctions Cloud ne seront actives qu'après les avoir déployées sur Firebase.

Depuis la racine du répertoire spelling-functions-start , exécutez la commande suivante :

$ firebase deploy --only functions

Voici la sortie de la console que vous devriez voir :

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

Notez l’URL du point de terminaison HTTP de la fonction ActionsOnGoogleFulfillment pour une utilisation ultérieure. Pour obtenir le point de terminaison, ouvrez la console Firebase , puis cliquez sur Projet de pratique d'orthographe . Ouvrez le tableau de bord Fonctions pour afficher le point de terminaison des fonctions.

332cb0437411a242.png

Vous avez terminé d'ajouter toutes les fonctions requises. Passons maintenant à la configuration de Cloud Firestore.

8. Activer Cloud Firestore

Vous devrez activer Cloud Firestore.

Dans la section Build de la console Firebase, cliquez sur Firestore . Ensuite, cliquez sur Créer une base de données .

5c0b4abf4410ffcf.png

L'accès aux données dans Cloud Firestore est contrôlé par des règles de sécurité. Vous devez d’abord définir quelques règles de base sur les données pour commencer. Cliquez sur Firestore puis dans l' onglet Règles de la console Firebase, ajoutez les règles suivantes, puis cliquez sur Publier .

Les règles suivantes limitent l'accès aux données aux utilisateurs connectés, ce qui empêche les utilisateurs non authentifiés de lire ou d'écrire.

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. Ajoutez des données d'orthographe de mots à Cloud Firestore

Au cours de cette étape, vous allez écrire des données d'orthographe de mots dans Cloud Firestore afin de pouvoir générer une liste de mots pour l'Assistant (et le jeu).

Les données Cloud Firestore sont structurées en collections, documents, champs et sous-collections. Chaque mot du jeu sera stocké comme son propre document dans une collection de niveau supérieur appelée wordlist . Pour chaque nouveau document de la collection Firestore, la fonction createSpellingPracticeWord sera déclenchée pour obtenir les détails du mot auprès du service API Dictionary .

Créer une collection Cloud Firestore

  1. Dans la console Firebase, accédez à la section Cloud Firestore.
  2. Cliquez sur + Démarrer la collecte .
  3. Dans la zone de texte ID de collection , saisissez wordlist , puis cliquez sur Next .

1b4ccadb90f52f02.png

Ensuite, nous allons créer un document pour un mot : accord

  1. Dans la zone de texte ID du document , saisissez agreement .
  2. Dans la zone de texte Champ , saisissez word et dans la zone de texte Valeur , saisissez agreement .
  3. Cliquez sur Enregistrer .

379037e011e8511e.png

Lorsque vous ajoutez ce document à Cloud Firestore, votre fonction createSpellingPracticeWord est déclenchée pour récupérer les détails de la définition du mot. Ajoutez plus de mots (par exemple : awe, car, true, tell, better, commute, ...) en créant un nouveau document pour chaque mot.

10. Configurer l'Assistant Google

Les sections suivantes décrivent comment configurer votre environnement de développement Google Assistant et créer votre projet Actions.

Vérifiez vos paramètres d'autorisation Google

Pour tester l'action que vous créez dans cet atelier de programmation, vous devez activer les autorisations nécessaires afin que le simulateur puisse accéder à votre action. Pour activer les autorisations, procédez comme suit :

  1. Accédez à la page Contrôles d'activité .
  2. Connectez-vous avec votre compte Google, si vous ne l'avez pas déjà fait.
  3. Activez les autorisations suivantes :
  • Activité sur le Web et les applications
  • Sous Activité sur le Web et les applications , cochez la case en regard de Inclure l'historique et l'activité Chrome des sites, applications et appareils qui utilisent les services Google .

c988e1e639e6d6e1.png

Créer un projet Actions

Votre projet Actions est un conteneur pour votre action. Pour créer votre projet Actions pour cet atelier de programmation, procédez comme suit :

  1. Ouvrez la console Actions .
  2. Cliquez sur Nouveau projet .
  3. Accepter les conditions d'utilisation

b174d45710b8086b.png

  1. Saisissez ou sélectionnez spelling-practice-codelab que vous avez créé à l'aide de la console Firebase. (Le nom est destiné à votre référence interne. Plus tard, vous pourrez définir un nom externe pour votre projet.)

a2951de5d2001fac.png

  1. Cliquez sur Importer le projet .
  2. Dans la section Quel type d'action souhaitez-vous construire ? écran, sélectionnez la carte personnalisée .
  3. Cliquez sur Suivant .
  4. Sélectionnez la carte de projet vierge .
  5. Cliquez sur Démarrer la création .
  6. Entrez Spelling Practice pour le nom d’affichage et cliquez sur Enregistrer.

Les utilisateurs démarrent la conversation avec votre action via une invocation . Par exemple, les utilisateurs peuvent appeler votre action en prononçant une phrase telle que "Hey Google, parle à Spelling Practice",Spelling Practice est le nom d'affichage.

Votre action doit avoir un nom d'affichage si vous souhaitez la déployer en production ; cependant, pour tester votre action, vous n'avez pas besoin de définir le nom d'affichage. Au lieu de cela, vous pouvez utiliser l'expression « Parler à mon application de test » dans le simulateur pour appeler votre action.

Configurer l'exécution

Vous devez connecter à l'Assistant les gestionnaires d'événements pour les fonctions Cloud que vous avez écrites et déployées précédemment dans cet atelier de programmation.

Pour configurer votre traitement, suivez ces étapes :

  1. Cliquez sur Webhook dans la navigation latérale.
  2. Sélectionnez le point de terminaison Https comme option de traitement :

d523bf003e96e66f.png

  1. Saisissez l'URL du point de terminaison de votre fonction dans la zone de texte du point de terminaison HTTPs , puis cliquez sur Enregistrer .

be53e2cd0d914d54.png

Dans la section suivante, vous allez personnaliser l'invite pour votre appel principal dans la console Actions.

Configurer l'invocation principale

Vous devez modifier l' invocation principale pour définir ce qui se passe après qu'un utilisateur invoque votre action.

Par défaut, Actions Builder fournit une invite générique lorsque votre invocation est déclenchée ( « Commencez à créer votre action en définissant l'invocation principale. »).

Pour modifier l'invite que votre action renvoie à l'utilisateur lorsqu'il appelle votre action, procédez comme suit :

  1. Cliquez sur Invocation principale dans la navigation.

9ff088c04c995cde.png

  1. Cochez Call your webhook et ajoutez le nom du gestionnaire d'événements getSpellingWordList dans la zone de texte.
  2. Dans l'éditeur de code, remplacez le texte du champ speech par le message de bienvenue suivant : Welcome to Spelling Practice

Remarque : Vous pouvez utiliser le formatage YAML ou JSON pour modifier vos invites.

  1. Cliquez sur Enregistrer .

Tester l'invocation principale dans le simulateur

La console Actions fournit un outil Web permettant de tester votre action appelé simulateur . L'interface simule les périphériques matériels et leurs paramètres, afin que vous puissiez converser avec votre action comme si elle s'exécutait sur un écran intelligent, un téléphone, un haut-parleur ou KaiOS.

Pour tester l'invocation principale de votre action dans le simulateur, procédez comme suit :

  1. Dans la barre de navigation supérieure, cliquez sur Test pour accéder au simulateur.
  2. Pour invoquer votre action dans le simulateur, tapez Talk to Spelling Practice dans le champ de saisie en haut à gauche, puis appuyez sur Entrée sur votre clavier.

651fc8da1ac9aa0a.png

Lorsque vous déclenchez l'invocation principale de votre action, l'Assistant répond avec votre message de bienvenue personnalisé. À ce stade, la conversation se termine après que l'Assistant ait répondu par un message d'accueil.

Afficher les journaux d'événements

Lorsque vous êtes dans l'onglet Test , le panneau de droite affiche les journaux d'événements , qui affichent l'historique des conversations sous forme de journaux d'événements. Chaque journal d'événements affiche les événements qui se produisent pendant ce tour de conversation. Pour afficher le journal des événements, cliquez sur l'icône grise avant l'événement.

Votre action dispose actuellement d'un journal d'événements, qui affiche à la fois la saisie de l'utilisateur ( "Parler à Spelling Practice" ) et la réponse de votre action. La capture d'écran suivante montre le journal des événements de votre action :

a6fb192f94426824.png

11. Construisez la conversation pour la pratique de l’orthographe

Maintenant que vous avez défini ce qui se passe après qu'un utilisateur invoque votre action, vous pouvez développer le reste de la conversation de votre action. Spelling Practice comporte quatre scènes et vous devez activer chaque scène avant de pouvoir s'exécuter. La manière la plus courante d'activer une scène consiste à configurer votre action de sorte que, lorsqu'un utilisateur correspond à une intention utilisateur dans une scène, cette intention déclenche la transition vers une autre scène et l'active.

Transition de l'invocation principale à la scène de démarrage

Dans cette section, vous créez une nouvelle scène appelée Start , qui envoie une invite à l'utilisateur lui demandant s'il souhaite commencer à jouer à Spelling Practice . Vous ajoutez également une transition de l'invocation principale vers la nouvelle scène Start .

Pour créer cette scène et y ajouter une transition, procédez comme suit :

  1. Cliquez sur Développer dans la navigation supérieure. Ensuite, cliquez sur Invocation principale dans la navigation de gauche.
  2. Dans la section Transition à droite, cliquez sur le menu déroulant, puis tapez Start dans le champ de texte.

dd4f1807a57f794d.png

  1. Cliquez sur Ajouter . Cela crée une scène appelée Start et indique à l'Action de passer à la scène Start après que l'Action ait envoyé l'invite de bienvenue à l'utilisateur.
  2. Cliquez sur Scènes dans la navigation de gauche pour afficher la liste des scènes.
  3. Sous Scènes , cliquez sur Démarrer pour voir la scène Start .
  4. Cliquez sur + dans la section Sur entrée de la scène Start .
  5. Sélectionnez Envoyer des invites .
  6. Remplacez la phrase dans le champ speech ( Enter the response that users will see or hear... ) par une question à poser à l'utilisateur : Use phonetic alphabet to spell the word. For example alpha for a, bravo for b, charlie for c etc. Do you want to continue?

Les puces de suggestion offrent à l'utilisateur des suggestions cliquables que votre action traite en tant qu'entrée utilisateur. Dans cette section, vous ajoutez des puces de suggestion qui apparaissent sous l'invite que vous venez de configurer ( Do you want to play

Spelling Practice

? ) pour prendre en charge les utilisateurs sur les appareils dotés d'écrans.

Pour ajouter des puces de suggestion à l'invite de la scène de Start , procédez comme suit :

  1. Dans la scène Start , cliquez sur les suggestions sous l’éditeur de code. Cette action ajoute une seule puce de suggestion.
  2. Dans le champ title , remplacez Suggested Response par 'Yes' .
  3. En utilisant le même formatage, ajoutez manuellement une puce de suggestion intitulée 'No' et 'Help with Phonetics' . Votre code devrait ressembler à l'extrait suivant :
  4. Cliquez sur Enregistrer .

5ff2ecdc56801b91.png

Testez votre action dans le simulateur

À ce stade, votre action doit passer de l'invocation principale à la scène de démarrage et demander à l'utilisateur s'il souhaite continuer. Des puces de suggestion doivent également apparaître dans l’affichage simulé.

Pour tester votre action dans le simulateur, suivez ces étapes :

  1. Dans la barre de navigation, cliquez sur Test pour accéder au simulateur.
  2. Pour tester votre action dans le simulateur, tapez Talk to Spelling Practice dans le champ de saisie.
  3. Appuyez sur Entrée . Votre action doit répondre avec l'invite Main invocation et l'invite de scène Start ajoutée, "Bienvenue dans la pratique de l'orthographe. Utilisez l'alphabet phonétique pour épeler le mot. Par exemple alpha pour a, bravo pour b, charlie pour c etc. Voulez-vous continuer?" .

La capture d'écran suivante montre cette interaction :

338c9570b02a618e.png

  1. Cliquez sur la puce de suggestion Yes ou No ou Help with Phonetics pour répondre à l'invite. (Vous pouvez également dire « Oui » ou « Non » ou « Aide avec la phonétique » ou saisir Yes ou No ou Help with Phonetics dans le champ de saisie .)

Lorsque vous répondez à l'invite, votre action répond par un message indiquant qu'elle ne peut pas comprendre votre saisie : "Désolé, je n'ai pas compris. Pouvez-vous réessayer ?" Puisque vous n'avez pas encore configuré votre action pour comprendre et répondre à une entrée « Oui » ou « Non » , votre action fait correspondre votre entrée à une intention NO_MATCH .

Par défaut, l'intention système NO_MATCH fournit des réponses génériques, mais vous pouvez personnaliser ces réponses pour indiquer à l'utilisateur que vous n'avez pas compris sa saisie. L'Assistant met fin à la conversation de l'utilisateur avec votre action après qu'elle ne puisse pas correspondre à trois reprises à l'entrée de l'utilisateur.

Ajouter des intentions de non et de phonétique

Maintenant que les utilisateurs peuvent répondre à la question posée par votre action, vous pouvez configurer votre action pour comprendre les réponses des utilisateurs ( « Oui » ou « Non » ou « Aide avec la phonétique » ). Dans les sections suivantes, vous créez des intentions utilisateur qui correspondent lorsque l'utilisateur dit « Oui » , « Non » ou « Aide avec la phonétique » et ajoutez ces intentions à la scène Start . Nous utiliserons yes l’intention du système et créerons d’autres intentions.

Ne créer no intention

Maintenant, vous devez créer la no intention pour comprendre et répondre à l'utilisateur lorsqu'il ne veut pas jouer au jeu. Pour créer cette intention, procédez comme suit :

  1. Cliquez sur Développer dans la navigation.
  2. Cliquez sur Intentions personnalisées dans la navigation pour ouvrir la liste des intentions.
  3. Cliquez sur + (signe plus) à la fin de la liste des intentions. Nommez le nouveau no d'intention et appuyez sur Entrée .
  4. Cliquez sur non pour ouvrir la page no intention.
  5. Dans la section Ajouter des phrases de formation , cliquez sur la zone de texte Saisir une phrase et saisissez les phrases suivantes :
  • No
  • N
  • I don't want
  • nope

98b0c9a7b67ea9b9.png

  1. Cliquez sur Enregistrer .

N'ajouter no intention à la scène Start

Désormais, l'action peut comprendre quand un utilisateur exprime « non » ou quelque chose de similaire à « non » , comme « non » . Vous devez ajouter l'intention no d'utilisateur à la scène Start car l'utilisateur répond à l'invite Start ("Bienvenue dans la pratique de l'orthographe. Utilisez l'alphabet phonétique pour épeler le mot. Par exemple alpha pour a, bravo pour b, charlie pour c etc. Voulez-vous continuer?" ).

Pour ajouter cette intention pour la scène Start , procédez comme suit :

  1. Cliquez sur la scène Démarrer dans la navigation.
  2. Cliquez sur le + (signe plus) dans la scène Start à côté de Gestion des intentions de l'utilisateur.
  3. Dans la section Intention , sélectionnez non dans la liste déroulante.

51f752e78c8b4942.png

  1. Cliquez sur Envoyer des invites et mettez à jour le champ speech avec le texte suivant : Good Bye .

Le code dans votre éditeur devrait ressembler à l'extrait suivant :

candidates:
  - first_simple:
      variants:
        - speech: >-
             Goodbye.
  1. Dans la section Transition , sélectionnez Terminer la conversation dans la liste déroulante.
  2. Cliquez sur Enregistrer .

Ne tester no intention dans le simulateur

À ce stade, votre action comprend quand l'utilisateur ne souhaite pas jouer au jeu et renvoie la réponse appropriée.

Pour tester cette intention dans le simulateur, procédez comme suit :

  1. Dans la barre de navigation, cliquez sur Test .
  2. Tapez Talk to Spelling Practice dans le champ de saisie et appuyez sur Enter .
  3. Tapez No dans le champ de saisie et appuyez sur Entrée. Vous pouvez également cliquer sur la puce Aucune suggestion.

7727a456b522f31b.png

Ajouter l'intention YES du système à la scène Start

Maintenant, nous allons ajouter l'intention SYSTEM "OUI" à la scène Start , puisque l'utilisateur répond oui à l'invite Start (" Bienvenue dans la pratique de l'orthographe. Utilisez l'alphabet phonétique pour épeler le mot. Par exemple alpha pour a, bravo pour b, charlie pour c etc. Voulez-vous continuer ?" ).

Pour ajouter cette intention utilisateur à la scène Start , procédez comme suit :

  1. Cliquez sur la scène Démarrer dans la navigation.
  2. Cliquez sur le + (signe plus) dans la scène Start à côté de Gestion des intentions de l'utilisateur .
  3. Sous Toutes les intentions du système, sélectionnez OUI dans la liste déroulante des intentions.

f6cbe789cde49e8f.png

  1. Cliquez sur Appeler votre webhook et mettez à jour la zone de texte event handler avec la fonction que vous avez créée précédemment : getSpellingWordList
  2. Dans la section Transition , cliquez sur la liste déroulante et sélectionnez Terminer la conversation .
  3. Cliquez sur Enregistrer .

Tester l'intention YES dans le simulateur

À ce stade, votre action comprend quand l'utilisateur souhaite jouer au jeu et renvoie la réponse appropriée.

Pour tester cette intention dans le simulateur, procédez comme suit :

  1. Dans la barre de navigation, cliquez sur Test .
  2. Pour tester votre action dans le simulateur, tapez Talk to Spelling Practice dans le champ de saisie et appuyez sur Entrée .
  3. Tapez Yes dans le champ de saisie et appuyez sur Entrée . Vous pouvez également cliquer sur la puce de suggestion Yes .

Votre action récupère une liste de tous les mots de pratique d’orthographe et les stocke en session. Votre action met ensuite fin à la session car vous avez sélectionné la transition End conversation pour l'intention YES .

Créer une intention Phonetics

Pour créer l'intention Phonetics , procédez comme suit :

  1. Cliquez sur Développer dans la navigation.
  2. Cliquez sur Intentions personnalisées dans la navigation pour ouvrir la liste des intentions.
  3. Cliquez sur + (signe plus) à la fin de la liste des intentions. Nommez la nouvelle phonetics d’intention et appuyez sur Enter .
  4. Cliquez sur l'intention phonetics pour ouvrir la page d'intention phonetics .
  5. Dans la section Ajouter des phrases de formation, cliquez sur la zone de texte Saisir une phrase et saisissez les phrases suivantes :
  • how do I spell words
  • phonetics
  • help me with phonetics
  • phonetic alphabet

1455bdfca8dae46.png

  1. Cliquez sur Enregistrer .

Ajouter une intention phonetics à la scène Start

Désormais, l'action peut comprendre quand un utilisateur exprime une intention « phonétique » . Vous pouvez ajouter l'intention phonetics de l'utilisateur à la scène Start , puisque l'utilisateur répond à l'invite Start (" Bienvenue dans la pratique de l'orthographe. Utilisez l'alphabet phonétique pour épeler le mot. Par exemple alpha pour a, bravo pour b, charlie pour c etc. Voulez-vous continuer?" ).

Pour ajouter cette intention utilisateur à la scène Start , procédez comme suit :

  1. Cliquez sur la scène Démarrer dans la navigation.
  2. Cliquez sur le + (signe plus) dans la scène Start à côté de Gestion des intentions de l'utilisateur.
  3. Sélectionnez la phonétique dans la liste déroulante d'intention.

67ee2e08000b2aee.png

  1. Dans la section Transition , cliquez sur la liste déroulante et sélectionnez Terminer la conversation.
  2. Cliquez sur Enregistrer .

Transition de la scène de démarrage à la scène d'orthographe

Dans cette section, vous allez créer une nouvelle scène appelée Orthographe , qui envoie une invite à l'utilisateur pour qu'il épelle le mot à l'aide de l'alphabet phonétique.

Pour créer cette scène et y ajouter une transition, procédez comme suit :

  1. Cliquez sur Développer dans la navigation supérieure. Ensuite, cliquez sur Démarrer la scène dans la navigation de gauche.
  2. Dans la section Gestion des intentions de l'utilisateur, cliquez when actions.intent.YES is matched et à droite dans la section de transition , cliquez sur le menu déroulant et tapez Spelling dans le champ de texte.
  3. Cliquez sur Ajouter . Cela crée une scène appelée Spelling et indique à l'action de passer à la scène Spelling après la correspondance avec l'intention OUI.
  4. Développez Scènes dans la navigation de gauche pour afficher la liste des scènes.
  5. Sous Scènes , cliquez sur Orthographe pour afficher la scène Spelling .
  6. Cliquez sur + dans la section Lors de la saisie de la scène Spelling .
  7. Cliquez sur Appeler votre webhook et saisissez getSpellingWord dans la zone de texte du gestionnaire d'événements.
  8. Sélectionnez Envoyer des invites .
  9. Remplacez la phrase dans le champ speech ( Enter the response that users will see or hear... ) par {} . L'invite réelle sera renseignée par le webhook.

Les puces de suggestion offrent à l'utilisateur des suggestions cliquables que votre action traite en tant qu'entrée utilisateur.

Pour ajouter des puces de suggestion à l'invite de la scène Spelling , procédez comme suit :

  1. Dans la scène Spelling , cliquez sur suggestions sous l’éditeur de code. Cette action ajoute trois puces de suggestion.
  2. Dans le champ title , remplacez Suggested Response par 'Repeat' .
  3. En utilisant le même formatage, ajoutez manuellement une puce de suggestion intitulée 'Skip' .
  4. En utilisant le même formatage, ajoutez manuellement une puce de suggestion intitulée 'Quit' . Votre code devrait ressembler à l'extrait suivant :
  5. Cliquez sur Enregistrer .
suggestions:
      - title: 'Repeat'
      - title: 'Skip'
      - title: 'Quit'

e1d437f714ea1539.png

Créer une intention Repeat

Pour créer l'intention repeat , procédez comme suit :

  1. Cliquez sur Développer dans la navigation.
  2. Cliquez sur Intentions personnalisées dans la navigation pour ouvrir la liste des intentions.
  3. Cliquez sur + (signe plus) à la fin de la liste des intentions. Nommez la nouvelle repeat d’intention et appuyez sur Enter .
  4. Cliquez sur l'intention repeat pour ouvrir la page d'intention definition .
  5. Dans la section Ajouter des phrases de formation , cliquez sur la zone de texte Saisir une phrase et saisissez les phrases suivantes :
  • one more time please
  • say the word again
  • repeat the word
  • tell me again
  • repeat

e61f0b9f80510bc9.png

  1. Cliquez sur Enregistrer .

Ajouter une intention repeat à la scène Spelling

Désormais, l'action peut comprendre quand un utilisateur exprime une intention de « répétition » . Vous pouvez ajouter l'intention repeat de l'utilisateur à la scène Spelling , puisque l'utilisateur répond à l'invite SpellingÉpeler le mot à l'aide de l'alphabet phonétique »).

Pour ajouter cette intention utilisateur à la scène Spelling , procédez comme suit :

  1. Cliquez sur la scène Orthographe dans la navigation.
  2. Cliquez sur le + (signe plus) dans la scène Spelling à côté de Gestion des intentions de l'utilisateur .
  3. Sélectionnez répéter dans la liste déroulante d'intention.

5cfd623b25bedbed.png

  1. Cochez la case Appelez votre webhook et saisissez repeatSpellingWord dans la zone de texte du gestionnaire d'événements pour obtenir la définition du mot.
  2. Cochez Envoyer des invites .
  3. Remplacez la phrase dans le champ speech ( Enter the response that users will see or hear... ) par ''. L'invite réelle sera renseignée par le webhook.

Ajoutez des puces de suggestion à "Lorsque la répétition correspond"

  1. Dans « Lorsque la répétition correspond » sous Gestion des intentions de l'utilisateur, cliquez sur les suggestions sous l'éditeur de code. Cette action ajoute trois puces de suggestion.
  2. Dans le champ title , remplacez Suggested Response par 'Skip' .
  3. En utilisant le même formatage, ajoutez manuellement une puce de suggestion intitulée 'Quit' Votre code devrait ressembler à l'extrait suivant :
suggestions:
      - title: 'Skip'
      - title: 'Quit'

ab40e4b0c432b97c.png

  1. Cliquez sur Enregistrer.

Créer un intention definition

Pour créer l'intention definition , procédez comme suit :

  1. Cliquez sur Développer dans la navigation.
  2. Cliquez sur Intentions personnalisées dans la navigation pour ouvrir la liste des intentions.
  3. Cliquez sur + (signe plus) à la fin de la liste des intentions. Nommez la nouvelle definition d’intention et appuyez sur Enter .
  4. Cliquez sur l'intention definition pour ouvrir la page d'intention definition .
  5. Dans la section Ajouter des phrases de formation , cliquez sur la zone de texte Saisir une phrase et saisissez les phrases suivantes :
  • I would like to know the definition
  • tell me the definition
  • what does it mean
  • meaning
  • definition
  • what is the definition?

c1b88a9c0b1ac082.png

  1. Cliquez sur Enregistrer .

Ajouter une intention definition à la scène Spelling

Désormais, l'action peut comprendre quand un utilisateur exprime une intention de « définition » . Vous pouvez ajouter la definition de l'intention de l'utilisateur à la scène Spelling , puisque l'utilisateur répond à l'invite SpellingÉpeler le mot à l'aide de l'alphabet phonétique »).

Pour ajouter cette intention utilisateur à la scène Spelling , procédez comme suit :

  1. Cliquez sur la scène Orthographe dans la navigation.
  2. Cliquez sur le + (plus signe) dans la scène Spelling à côté de la manipulation de l'intention de l'utilisateur .
  3. Sélectionnez la définition dans l'intention déroulante.

646BDCAC3AD3EB0C.PNG

  1. Consultez l' appel votre webhook et entrez de définition OfSpellingword dans la zone de texte du gestionnaire d'événements pour obtenir la définition de mot.
  2. Vérifiez les invites d'envoi .
  3. Remplacez la phrase dans le champ speech ( Enter the response that users will see or hear... ) par '' '. L'invite réelle sera peuplée de webhook.

Ajouter des puces de suggestion à la réponse Webhook

  1. Dans la scène Start , cliquez sur les suggestions ci-dessous l'éditeur de code. Cette action ajoute trois puces de suggestion.
  2. Dans le champ title , remplacez Suggested Response par 'Skip' .
  3. En utilisant le même formatage, ajoutez manuellement une puce de suggestion intitulée 'Quit' Votre code devrait ressembler à l'extrait suivant:
suggestions:
      - title: 'Skip'
      - title: 'Quit'

25227545839d933f.png

  1. Cliquez sur Enregistrer .

Créer une intention skip

Pour créer l'intention skip , suivez ces étapes:

  1. Cliquez sur Développer dans la navigation.
  2. Cliquez sur les intentions de la navigation pour ouvrir la liste des intentions.
  3. Cliquez sur + (plus signe) à la fin de la liste des intentions. Nommez la nouvelle intention skip et appuyez sur Enter .
  4. Cliquez sur l'intention skip pour ouvrir la page INTERNET skip .
  5. Dans la section Ajouter des phrases de formation , cliquez sur la zone de texte Entrez et entrez les phrases suivantes:
  • next word
  • go next
  • next
  • skip
  • skip word

d1c4908a3d7882f8.png

  1. Cliquez sur Enregistrer .

Ajouter une intention Skip à la scène Spelling

Maintenant, l'action peut comprendre quand un utilisateur exprime une intention "sauter" . Vous pouvez ajouter l'intention de l'utilisateur skip à la scène Spelling , car l'utilisateur répond à l'invite Spelling (" épelez le mot en utilisant l'alphabet phonétique ").

Pour ajouter cette intention d'utilisateur à la scène Spelling , suivez ces étapes:

  1. Cliquez sur la scène d'orthographe dans la navigation.
  2. Cliquez sur le + (plus signe) dans la scène Spelling à côté de l'intention de l'utilisateur handlin g.
  3. Sélectionnez Skip dans l'intention déroulante.

5465f97542217964.png

  1. Dans la section de transition à droite, cliquez sur le menu déroulant et sélectionnez Spelling .

c8072485ca82bd3f.png

  1. Cliquez sur Enregistrer .

Créer une intention quit

Pour créer l'intention Quit , suivez ces étapes:

  1. Cliquez sur Développer dans la navigation.
  2. Cliquez sur les intentions de la navigation pour ouvrir la liste des intentions.
  3. Cliquez sur + (plus signe) à la fin de la liste des intentions. Nommez le nouvel intention Quit et appuyez sur Enter .
  4. Cliquez sur l'intention Quit pour ouvrir la page d'intention de définition .
  5. Dans la section Ajouter des phrases de formation , cliquez sur la zone de texte Entrez et entrez les phrases suivantes:
  • I quit
  • Goodbye
  • Cancel
  • Exit
  • Quit

9916f77b8766541e.png

  1. Cliquez sur Enregistrer.

Ajouter une intention Quit à la scène Spelling

Maintenant, l'action peut comprendre quand un utilisateur exprime une intention "quit" . Vous pouvez ajouter l'intention de l'utilisateur quit à la scène Spelling , car l'utilisateur répond à l'invite Spelling (" épeler le mot à l'aide de l'alphabet phonétique ").

Pour ajouter cette intention d'utilisateur à la scène Spelling , suivez ces étapes:

  1. Cliquez sur la scène d'orthographe dans la navigation.
  2. Cliquez sur le + (plus signe) dans la scène Spelling à côté de la manipulation de l'intention de l'utilisateur .
  3. Sélectionnez Quitter dans l'intention déroulante.

5f62fb18a3653d66.png

  1. Dans la section de transition à droite, cliquez sur le menu déroulant et sélectionnez End conversation . 1ffbe35a7bbbb4b0.png
  2. Cliquez sur Enregistrer .

Créer un type phonetic_alphabet

Dans cette section, vous créez un nouveau type appelé phonetic_alphabet , qui spécifie les options d'alphabet phonétiques que les utilisateurs peuvent choisir d'épeler le mot. Vous pouvez également définir quelques synonymes pour ces options au cas où un utilisateur dit quelque chose de similaire. Dans une section ultérieure, vous ajoutez le type phonetic_alphabet à une fente pour spécifier que vous souhaitez obtenir la réponse de l'utilisateur.

Pour créer le type phonetic_alphabet , suivez ces étapes:

  1. Cliquez sur Développer dans la navigation.
  2. Cliquez sur le + (plus signe) sous les types .
  3. Tapez phonetic_alphabet et appuyez sur Enter .
  4. Cliquez sur phonetic_alphabet pour ouvrir les options.
  5. Dans quel type de valeurs ce type supportera-t-il? Section, sélectionnez l'option de mots et synonymes
  6. Entrez les entrées suivantes et les valeurs correspondantes dans la section des entrées Ajouter :

un

Alpha, Apple, Amsterdam

b

bravo, beurre, baltimore

c

Charlie, chat, Casablanca

d

delta, chien, Danemark

e

Echo, Edward, Edison

F

Foxtrot, Fox, Floride

g

Golf, George, Gallipoli

h

Hôtel, Harry, La Havane

je

Inde, encre, Italia

j

Juliette, Johnny, Jérusalem

k

kilo, roi, kilogramme

je

Lima, amour, Londres

m

Mike, Money, Madagascar

n

Novembre, New York, Nancy

o

Oscar, Orange, Oslo

p

Papa, Paris, Peter

q

Québec, reine

r

Roméo, Roma, Robert

s

Sierra, sucre, Santiago

t

Tango, Tommy, Tripoli

toi

uniforme, parapluie, oncle

v

Victor, vinaigre, Valence

w

Whisky, William, Washington

X

radiographie

oui

Yankee, jaune, Yorker

z

Zoulu, zèbre, Zurich

Votre table de valeur clé devrait ressembler à ce qui suit:

5B5A5CD9FA557E1B.PNG

  1. Cliquez sur Enregistrer .

Configurer le remplissage de l'emplacement

Ensuite, vous devez configurer le remplissage de l'emplacement dans la scène d'orthographe. Pour configurer la logique de remplissage de fentes, suivez ces étapes:

  1. Cliquez sur la scène d'orthographe dans la navigation.
  2. Cliquez sur le + (plus signe) dans la scène Spelling pour le remplissage des emplacements .
  3. Dans le champ Entrer le nom de l'emplacement , ajoutez userresponse comme nom de l'emplacement.
  4. Dans le type de sélection déroulant, sélectionnez Phonetic_Alphabet comme type de machine à sous.
  5. Vérifiez cette machine à sous accepte une liste de valeurs
  6. Vérifiez cette machine à sous est requise .
  7. Sélectionnez Personnaliser l'option de rédaction de valeur de l'emplacement et entrez USerResponse dans la zone de texte du paramètre de session.

BA57A41987AA07F3.png

  1. Cliquez sur Enregistrer .

Ajouter une condition à l'écran Spelling

Pour ajouter de l'état à la scène Spelling , suivez ces étapes:

  1. Cliquez sur la scène d'orthographe dans la navigation.
  2. Cliquez sur le + (plus signe) dans la scène Spelling à côté de l'état.
  3. Entrez scene.slots.status == "FINAL" comme condition
  4. Consultez l' appel votre webhook et entrez VerifySpelingWord dans la zone de texte du gestionnaire d'événements pour vérifier la réponse de l'utilisateur.
  5. Vérifiez les invites d'envoi.
  6. Remplacez la phrase dans le champ speech ( Enter the response that users will see or hear... ) par {} . L'invite réelle sera peuplée de webhook.

Ajouter des puces de suggestion à la réponse Webhook

  1. Dans la scène Start , cliquez sur les suggestions ci-dessous l'éditeur de code. Cette action ajoute trois puces de suggestion.
  2. Dans le champ title , remplacez Suggested Response par 'Next' .
  3. En utilisant le même formatage, ajoutez manuellement une puce de suggestion intitulée 'Quit' Votre code devrait ressembler à l'extrait suivant:
suggestions:
      - title: 'Next'
      - title: 'Quit'

ac3d7a9366ebc1b1.png

  1. Cliquez sur Enregistrer .

12. Testez la pratique de l'orthographe dans le simulateur

Pour tester votre action dans le simulateur, suivez ces étapes:

  1. Dans la barre de navigation, cliquez sur Tester pour vous amener au simulateur.
  2. Pour tester votre action dans le simulateur, tapez Talk to Spelling Practice dans le champ de saisie.
  3. Appuyez sur Entrée . Votre action doit répondre avec l'invite Main invocation et l'invite de scène Start supplémentaire : "Bienvenue à l'orthographe. continuer?" .
  4. Dites oui pour continuer
  5. Simulator jouera un son mot à épeler
  6. Vous pouvez épeler le mot en utilisant des alphabets phonétiques. Par exemple, pour mieux dire ou taper "Bravo Echo Tango Tango Echo Romeo"
  7. Le simulateur répondra avec la réponse correcte ou incorrecte.
  8. Dites ensuite pour continuer au mot suivant ou dire quitter pour quitter la boucle de jeu.

13. Félicitations

Félicitations, vous avez réussi à construire votre jeu, une pratique d'orthographe !

Vous connaissez maintenant les étapes clés requises pour créer un jeu à l'aide de Cloud Firestore, des fonctions cloud et de Google Assistant Action Builder.

Ce que tu as couvert

  • Comment interagir avec Cloud Firestore
  • Comment utiliser des créneaux pour recueillir des données de l'utilisateur
  • Comment traiter les entrées d'un utilisateur et renvoyer une réponse
  • Comment utiliser les conditions pour ajouter de la logique à une scène
  • Comment ajouter une boucle de jeu

Ressources d'apprentissage supplémentaires

Vous pouvez explorer ces ressources pour apprendre à créer des actions pour Google Assistant:

Nettoyez votre projet [recommandé]

Pour éviter les frais possibles, il est recommandé de supprimer les projets que vous n'avez pas l'intention d'utiliser. Pour supprimer les projets que vous avez créés dans ce CodeLab, suivez ces étapes:

  1. Pour supprimer votre projet et vos ressources Firebase, complétez les étapes énumérées dans la section des projets de fermeture (supprimer) .

ATTENTION: Assurez-vous de sélectionner le bon projet de suppression sur la page Paramètres de la console Google Cloud.

  1. Facultatif: Pour supprimer immédiatement votre projet de la console Actions, complétez les étapes répertoriées dans la supprimer une section de projet . Si vous ne terminez pas cette étape, votre projet sera automatiquement supprimé après environ 30 jours.

Suivez @ActionSongoogle & @fireBase sur Twitter pour rester à l'écoute de nos dernières annonces et tweeter à #Googleio pour partager ce que vous avez construit!