La plate-forme pour les développeurs dédiée à l'Assistant Google vous permet de créer des logiciels visant à étendre les fonctionnalités de cet assistant personnel virtuel sur plus d'un milliard d'appareils (enceintes intelligentes, téléphones, voitures, téléviseurs, casques audio, etc.). Cet assistant simplifie la vie des utilisateurs qui lui demandent d'accomplir des tâches (par exemple, faire des courses, réserver un chauffeur, etc.). En tant que développeur, vous pouvez utiliser cette plate-forme pour créer et gérer facilement des échanges agréables et efficaces entre les utilisateurs et votre propre service de traitement tiers.
Cet atelier de programmation aborde les concepts de niveau intermédiaire du développement avec l'Assistant Google et s'appuie sur l'action créée dans l'atelier de niveau 1. Nous vous recommandons vivement de terminer l'atelier de programmation de niveau 1 avant de démarrer celui-ci.
L'action que vous créez dans cet atelier de programmation prédit aux utilisateurs leur avenir concernant leur quête dans les terres légendaires de Gryffinberg, en fonction de l'aide qu'ils choisissent.
Objectifs de l'atelier
Dans cet atelier de programmation, vous allez créer une action conversationnelle sophistiquée qui intègre les fonctions suivantes :
- Collecter des données auprès de l'utilisateur et modifier les invites de conversation en fonction de la valeur
- Répondre à des questions complémentaires pour poursuivre la conversation
- Créer une boucle de jeu pour que l'utilisateur puisse interagir à nouveau avec l'action après avoir obtenu une prédiction
Avant de commencer à créer cette action, vous pouvez interagir avec l'action en direct sur votre appareil avec l'Assistant Google intégré en disant Hey Google, parle à Fate and Fortune. La conversation par défaut via cette action pour un utilisateur connu ressemble à l'interaction suivante :
Points abordés
- Utiliser des emplacements pour collecter des données auprès de l'utilisateur
- Utiliser des conditions pour ajouter une logique à une scène
- Ajouter une boucle de jeu
- Ajouter un déroulement de conversation
Prérequis
Les prérequis pour cet atelier de programmation sont les suivants :
- Un navigateur Web, par exemple Chrome
- Un projet Actions de niveau 1 terminé
Une connaissance de JavaScript (ES6) est vivement recommandée, mais non obligatoire, pour comprendre le code de traitement utilisé dans cet atelier de programmation.
Dans le premier atelier de programmation, vous avez créé une action conversationnelle simple avec une seule scène, Start
.
Dans celui-ci, vous allez enrichir la conversation associée à votre action. Dans les sections suivantes, vous allez configurer l'action pour effectuer les opérations suivantes :
- Passer à une nouvelle scène
Fortune
lorsque l'utilisateur souhaite connaître son avenir - Demander à l'utilisateur l'aide qu'il souhaite choisir pour sa quête
- Proposer une prédiction personnalisée en fonction du choix de l'utilisateur
Créer une scène Fortune
Dans cette section, vous allez créer une scène Fortune
et définir la façon dont l'utilisateur y accède pendant la conversation.
Pour créer une scène appelée Fortune
, procédez comme suit :
- Ouvrez le projet Actions de l'atelier de programmation de niveau 1.
- Dans le menu de navigation, cliquez sur Develop (Développer).
- Sous Scenes (Scènes), cliquez sur la scène Start (Démarrer).
- Cliquez sur l'intent yes (oui) (dans la section When yes is matched [Lorsque "oui" est ciblé]) pour accéder aux options.
- Décochez la case Send prompts (Envoyer des invites) pour supprimer l'invite.
- Dans la section Transition, cliquez sur le menu déroulant, puis cliquez dans la zone de texte et saisissez
Fortune
. - Cliquez sur Ajouter. Cette opération crée une scène appelée
Fortune
. Elle ajoute également une transition entre la scèneStart
et la scèneFortune
, lorsque l'utilisateur souhaite qu'on lui prédise son avenir.
Définir une logique de conversation pour la scène Fortune
Dans cet atelier de programmation, vous allez configurer votre scène Fortune
pour demander à l'utilisateur What do you choose to help you on your quest, a dragon, a translator, or a compass? (Que choisissez-vous pour vous aider dans votre quête : un dragon, un traducteur ou une boussole ?). Vous pouvez utiliser la fonctionnalité appelée remplissage d'emplacements pour recueillir les informations nécessaires auprès de l'utilisateur avant de continuer.
Votre action propose des prédictions pour trois aides : un dragon, un traducteur et une boussole. Pour configurer votre action afin d'identifier ces trois options dans les entrées utilisateur, vous devez créer un type.
Vous pouvez vous servir des types à l'étape de remplissage d'emplacements d'une scène pour définir les informations que vous souhaitez recueillir auprès de l'utilisateur. Lorsque le moteur NLU détecte qu'un emplacement correspond à une entrée utilisateur, il l'extrait en tant que paramètre saisi afin que vous puissiez exécuter la logique dans une scène.
Créer le type available_options
Dans cette section, vous allez créer un type appelé available_options
, qui spécifie les trois options que les utilisateurs peuvent choisir (dragon, traducteur et boussole) en réponse à l'invite. Vous allez également définir quelques synonymes pour ces options, au cas où l'utilisateur prononcerait un mot similaire. Dans une section ultérieure, vous ajouterez le type available_options
à un emplacement pour indiquer que vous voulez obtenir le choix de l'utilisateur.
Pour créer le type available_options
, procédez comme suit :
- Dans le menu de navigation, cliquez sur Types.
- Cliquez sur + (signe plus), saisissez
available_options
, puis appuyez surEnter
. - Cliquez sur
available_options
pour accéder aux options.
Les types sont configurés en tant que paires clé/valeur, où la clé correspond au nom du type et les valeurs sont des synonymes de cette clé. Lorsque vous définissez la clé, celle-ci est automatiquement ajoutée en tant que valeur.
Pour ajouter les trois options proposées à l'utilisateur, procédez comme suit :
- Faites défiler la page vers le bas jusqu'à la section Add entries (Ajouter des entrées).
- Dans le champ New entry (Nouvelle entrée), saisissez
dragon
, puis appuyez surEnter
. Cette action crée une clédragon
. - Saisissez
hydra
dans le champ Add values (Ajouter des valeurs), puis appuyez surEnter
pour l'ajouter en tant que valeur (synonyme). Répétez l'opération pour la valeurlizard
. - Ajoutez les autres clés et valeurs correspondantes :
translator | translator, communicator, machine, decoder, translate
compass | compass, direction, guide
- Cliquez sur Save (Enregistrer).
Votre action comprend désormais que les options available_options
sont un dragon, un traducteur et une boussole, et elle reconnaît quelques synonymes.
Configurer le remplissage d'emplacements
Vous devez ensuite configurer le remplissage d'emplacements dans la scène Fortune
. Pour configurer la logique de remplissage d'emplacements, procédez comme suit :
- Dans le menu de navigation, sous Scenes (Scènes), cliquez sur Fortune (Prédiction).
- Dans la scène
Fortune
, cliquez sur + (signe plus) pour le remplissage d'emplacements. - Dans le champ Enter slot name (Saisir un nom d'emplacement) , ajoutez
chosenOptions
comme nom d'emplacement. - Dans la liste déroulante Select type (Sélectionner un type), choisissez le type d'emplacement
available_options
. - Cochez la case This slot is required (Cet emplacement est obligatoire).
- Cochez la case Send prompts (Envoyer des invites), puis ajoutez le message et les chips de suggestion suivants :
candidates: - first_simple: variants: - speech: >- What do you choose to help you on your quest, a dragon, a translator, or a compass? suggestions: - title: 'Dragon' - title: 'Translator' - title: 'Compass'
- Cliquez sur Save (Enregistrer).
Vous venez d'ajouter le type available_options
à l'emplacement, qui indique à votre action les informations que vous devez collecter auprès de l'utilisateur (son choix d'aide) avant de continuer. Vous avez également configuré une invite dans l'emplacement, qui est ajoutée à la file d'attente d'invites lorsque l'utilisateur atteint l'étape de remplissage d'emplacements de la scène.
Notez que lorsque vous nommez l'emplacement chosenOptions
, le champ Customize slot value writeback (Personnaliser la valeur envoyée au paramètre de session) est remplacé par le même nom ($session.params.chosenOptions
). Vous pouvez accéder à ce paramètre via ce nom dans Actions Builder et dans votre traitement via la bibliothèque cliente.
Configurer la condition scene.slots.status == "FINAL"
Lorsque vous ajoutez un emplacement, la condition scene.slots.status == "FINAL"
est automatiquement ajoutée à la liste des conditions.
La condition scene.slots.status == "FINAL"
vérifie si le remplissage d'emplacements est terminé. Une fois que les emplacements sont remplis, la condition peut déclencher un webhook, passer à une nouvelle scène ou ajouter des invites à la file d'attente d'invites.
Dans cette section, vous allez configurer la condition scene.slots.status == "FINAL"
pour ajouter une invite à la file d'attente une fois les emplacements remplis.
Pour ajouter cette invite à la condition FINAL
, procédez comme suit :
- Cliquez sur la condition
scene.slots.status == "FINAL"
pour ouvrir la fenêtre des options. - Cochez la case Send prompts (Envoyer des invites), puis ajoutez l'invite suivante :
candidates: - first_simple: variants: - speech: You picked $session.params.chosenOptions.
- Cliquez sur Save (Enregistrer).
Tester votre action dans le simulateur
À ce stade, vous avez défini les options que l'utilisateur devrait sélectionner pour remplir l'emplacement. Après avoir obtenu ces informations auprès de l'utilisateur, votre action devrait fournir une invite en rapport avec l'option qu'il a choisie.
Pour tester votre action, procédez comme suit :
- Dans la barre de navigation, cliquez sur Test (Tester).
- Saisissez
Talk to my test app
(ou cliquez sur ce bouton) dans le champ Input (Entrée), puis appuyez surEnter
. - Saisissez
Yes
dans le champ Input (Entrée), puis appuyez surEnter
. Vous pouvez également cliquer sur le chip de suggestion Yes (Oui).
- Saisissez ou dites
dragon
, ou cliquez sur ce mot. Vous devriez obtenir l'invite You picked dragon(Vous avez choisi le dragon).
Dans la section suivante, vous allez personnaliser les invites pour chaque aide que l'utilisateur peut sélectionner.
Personnaliser les invites à l'aide de conditions
Dans cette section, vous allez ajouter des conditions pour chaque option que l'utilisateur peut choisir, ainsi qu'une invite personnalisée pour chaque condition.
Personnaliser la prédiction pour dragon
Pour modifier la condition et personnaliser l'invite qui se déclenche lorsqu'un utilisateur opte pour le dragon, procédez comme suit :
- Dans le menu de navigation, cliquez sur Develop (Développer).
- Dans le menu de navigation, cliquez sur la scène Fortune (Prédiction).
- Cliquez sur la condition
scene.slots.status == "FINAL"
pour ouvrir la fenêtre des options. - Remplacez la déclaration de condition par
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
. - Cochez la case Send prompts (Envoyer des invites).
- Modifiez l'invite avec la prédiction suivante dans l'éditeur de code :
candidates: - first_simple: variants: - speech: >- The people of Gryffinberg will be awestruck by the beauty and power of the ancient dragon. Much to your dismay, the townspeople fall into dispute over who will receive the honor of riding the dragon first. You return home from your quest without everlasting glory or a dragon.
- Cliquez sur Save (Enregistrer).
Désormais, lorsqu'un utilisateur dit dragon ou un synonyme, votre action fournit une prédiction basée sur ce choix. Ajoutez ensuite les deux autres options.
Personnaliser la prédiction pour translator
Pour ajouter cette condition et personnaliser l'invite qui s'affiche lorsqu'un utilisateur sélectionne "translator" (traducteur), procédez comme suit :
- Cliquez sur + (signe plus) à côté de Condition.
- Ajoutez
scene.slots.status == "FINAL" && session.params.chosenOptions == "translator"
au champ else if. - Cochez la case Send prompts (Envoyer des invites).
- Ajoutez l'invite suivante dans votre éditeur de code :
candidates: - first_simple: variants: - speech: >- With the help of the translator, the rival factions in Gryffinberg are finally able to communicate with each other and resolve their disputes. You will complete your quest to restore peace in the town. The translator will be used on many subsequent journeys across the earth. After its work is done, it retires honorably to a premier location in the Gryffinberg History Museum.
- Cliquez sur Save (Enregistrer).
Personnaliser la prédiction pour compass
Pour ajouter cette condition et personnaliser l'invite qui s'affiche lorsqu'un utilisateur sélectionne "compass" (boussole), procédez comme suit :
- Cliquez sur + (signe plus) à côté de Condition.
- Ajoutez
scene.slots.status == "FINAL" && session.params.chosenOptions == "compass"
à la zone de texte else if. - Cochez la case Send prompts (Envoyer des invites).
- Ajoutez l'invite suivante dans l'éditeur de code :
candidates: - first_simple: variants: - speech: >- The compass will help you find the mystical and ancient Library of Gryffinberg. Among its infinite stacks of dusty books, you find one entitled "Wisdom of the Ages". By the time you've read the 50,000-page tome, the townspeople have forgotten their problems. You will write a second edition of "Wisdom of the Ages", but have limited commercial success.
- Cliquez sur Save (Enregistrer).
Tester votre action dans le simulateur
À ce stade, votre action devrait proposer à l'utilisateur une prédiction personnalisée en fonction de son choix.
Pour tester votre action, procédez comme suit :
- Dans la barre de navigation, cliquez sur Test (Tester).
- Saisissez
Talk to my test app
dans le champ Input (Entrée), puis appuyez surEnter
. - Saisissez "Yes" (Oui) dans le champ Input (Entrée), puis appuyez sur
Enter
**.** Vous pouvez également cliquer sur le chip de suggestion **Yes** (Oui). - Saisissez ou dites
Translator
, ou cliquez sur ce mot.
Vous devriez recevoir la bonne prédiction pour l'option "translator" (traducteur).
Dans cette section, vous allez configurer votre action afin que l'utilisateur puisse sélectionner une autre option et entendre une prédiction différente après avoir effectué son choix. Cette alternative est basée sur le même principe que le message Do you want to play again? (Voulez-vous rejouer ?) à la fin d'un jeu. Pour créer cette boucle, vous pouvez réutiliser les intents yes
et no
créés précédemment, puis les ajouter à une nouvelle scène appelée Again
.
Créer une scène Again
Dans cette section, vous allez créer une scène Again
et ajouter une invite demandant à l'utilisateur s'il souhaite choisir une autre option.
Pour créer la scène Again
, procédez comme suit :
- Dans le menu de navigation, cliquez sur Develop (Développer).
- Cliquez sur + (signe plus) sous Scenes (Scènes).
- Saisissez
Again
, puis appuyez surEnter
. - Cliquez sur la scène
Again
dans le menu de navigation. - Cliquez sur + (signe plus) à côté de l'option On enter (Lors de l'entrée).
- Cochez la case Send prompts (Envoyer des invites), puis ajoutez l'invite et les chips de suggestion suivants :
candidates: - first_simple: variants: - speech: >- That is what I see for you. Would you like to choose a different option and explore another future? suggestions: - title: 'Yes' - title: 'No'
- Cliquez sur Save (Enregistrer).
Ajouter une transition entre la scène Fortune
et la scène Again
Une fois que l'utilisateur a reçu sa prédiction, la conversation doit passer à la nouvelle scène Again
.
Pour ajouter une transition entre la scène Fortune
et la scène Again
, procédez comme suit :
- Cliquez sur la scène Fortune (Prédiction).
- Cliquez sur la première condition (
scene.slots.status == "FINAL" && session.params.chosenOptions == "dragon"
) pour ouvrir la fenêtre des options. - Faites défiler les options, puis sélectionnez
Again
sous Transition. - Cliquez sur Save (Enregistrer).
- Cliquez sur la deuxième condition pour ouvrir la fenêtre des options.
- Faites défiler les options, puis sélectionnez
Again
sous Transition. - Cliquez sur Save (Enregistrer).
- Cliquez sur la troisième condition pour ouvrir la fenêtre des options.
- Faites défiler les options, puis sélectionnez
Again
sous Transition. - Cliquez sur Save (Enregistrer).
Tester votre action dans le simulateur
À ce stade, votre action devrait fournir l'invite suivante après que l'utilisateur a reçu sa prédiction : "That is what I see for you. Would you like to choose a different option and explore another future?" (C'est ce que je prédis pour vous. Voulez-vous choisir une autre option et découvrir un autre avenir ?).
Pour tester votre action, procédez comme suit :
- Dans la barre de navigation, cliquez sur Test (Tester).
- Saisissez
Talk to my test app
dans le champ Input (Entrée), puis appuyez surEnter
. - Saisissez
Yes
dans le champ Input (Entrée), puis appuyez surEnter
. Vous pouvez également cliquer sur le chip de suggestion Yes (Oui). - Saisissez ou dites
dragon
, ou cliquez sur ce mot.
Vous devriez recevoir la prédiction correspondant au dragon et l'invite Again
.
Ajouter des intents et passer à la scène Again
Dans cette section, vous allez ajouter les intents yes
et no
à la scène Again
pour que votre action comprenne si l'utilisateur souhaite choisir une nouvelle option ou non. Vous allez également ajouter les transitions appropriées pour les intents yes
et no
. L'intent yes
permet de passer à la scène Fortune
, tandis que l'intent no
permet de passer à la scène système End conversation
.
Pour ajouter des intents et passer à la scène Again
, procédez comme suit :
- Dans le menu de navigation, cliquez sur Develop (Développer).
- Cliquez sur la scène
Again
. - Cliquez sur + (signe plus) à côté de l'option User intent handling (Gestion des intents utilisateur).
- Sélectionnez yes (oui) dans le menu déroulant de l'intent.
- Sélectionnez
Fortune
dans le menu déroulant Transition. - Cliquez sur Save (Enregistrer).
- Cliquez sur + (signe plus) à côté de l'option User intent handling (Gestion des intents utilisateur).
- Sélectionnez no (non) dans le menu déroulant de l'intent.
- Sélectionnez End conversation (Mettre fin à la conversation) dans le menu déroulant Transition.
- Cochez la case Send prompts (Envoyer des invites), puis ajoutez les invites suivantes dans l'éditeur de code :
candidates: - first_simple: variants: - speech: >- It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell.
- Cliquez sur Save (Enregistrer).
Tester votre action dans le simulateur
Votre action devrait désormais comprendre si l'utilisateur souhaite choisir une nouvelle option ou mettre fin à la conversation.
Pour tester l'intent yes
, procédez comme suit :
- Dans la barre de navigation, cliquez sur Test (Tester).
- Saisissez
Talk to my test app
dans le champ Input (Entrée), puis appuyez surEnter
. - Saisissez
Yes
dans le champ Input (Entrée), puis appuyez surEnter
. Vous pouvez également cliquer sur le chip de suggestion Yes (Oui). - Saisissez ou prononcez l'une des options, ou cliquez dessus.
- Saisissez
Yes
dans le champ "Input" (Entrée), puis appuyez surEnter
.
Vous devriez obtenir l'invite What do you choose to help you on your quest, a dragon, a translator, or a compass? (Que choisissez-vous pour vous aider dans votre quête : un dragon, un traducteur ou une boussole ?).
Pour tester l'intent no
, procédez comme suit :
- Saisissez ou prononcez l'une des options, ou cliquez dessus.
- Saisissez
No
dans le champ "Input" (Entrée), puis appuyez surEnter
.
Vous devriez obtenir l'invite End conversation
: It pleases me that you are satisfied with your choice. Best of luck on your quest. Farewell. (Je suis ravi que vous soyez satisfait de votre choix. Bonne chance pour votre quête ! Adieu.).
Vous venez de créer l'interaction principale que la plupart des utilisateurs connaîtront dans votre action. Toutefois, l'utilisateur peut répondre à l'invite de la scène Fortune
, What do you choose to help you on your quest, a dragon, a translator, or a compass? (Que choisissez-vous pour vous aider dans votre quête : un dragon, un traducteur ou une boussole ?), par un choix qui ne correspond à aucune des options proposées.
Dans cette section, vous allez configurer votre action pour qu'elle comprenne lorsqu'un utilisateur sélectionne "magic" (magie), "money" (argent), "horse" (cheval) ou "phone" (téléphone), et qu'elle invite à nouveau l'utilisateur à choisir l'une des trois options initiales. Pour configurer cette logique, vous devez créer un type
qui contient ces autres choix et un intent other_option
qui est ciblé lorsqu'un utilisateur prononce l'une de ces options. Vous devez aussi annoter les expressions d'entraînement de l'intent other_option
pour identifier et extraire les paramètres d'intent.
Lorsque le moteur NLU détecte qu'un paramètre correspond à une entrée utilisateur, il extrait la valeur en tant que paramètre saisi afin que vous puissiez exécuter la logique dans une scène. Dans cet atelier de programmation, vous allez configurer votre action de façon à extraire l'aide sélectionnée par l'utilisateur et à faire référence à ce choix dans une invite.
Créer le type unavailable_options
Vous pouvez à présent créer le type unavailable_options
contenant différentes options pour que votre action puisse identifier ces données dans l'entrée utilisateur.
Pour créer le type unavailable_options
, procédez comme suit :
- Dans le menu de navigation, cliquez sur Develop (Développer).
- Cliquez sur + (signe plus) sous Types.
- Saisissez
unavailable_options
, puis appuyez surEnter
. - Cliquez sur
unavailable_options
pour ouvrir les options. - Saisissez les entrées et valeurs correspondantes suivantes dans la section Add entries (Ajouter des entrées) :
|
|
|
|
|
|
|
|
Le tableau des paires clé/valeur devrait se présenter comme suit :
- Cliquez sur Save (Enregistrer).
Créer l'intent other_option
Créez ensuite un intent appelé other_option
et ajoutez des expressions d'entraînement qui incluent les options du type unavailable_options
. Cet intent est ciblé lorsque l'utilisateur choisit une option contenue dans le type unavailable_options
.
Pour créer et configurer l'intent other_option
, procédez comme suit :
- Cliquez sur + (signe plus) sous Intents.
- Saisissez
other_option
, puis appuyez surEnter
. - Cliquez sur
other_option
pour ouvrir la fenêtre. - Ajoutez les expressions d'entraînement suivantes, en appuyant sur
Enter
après avoir saisi chacune d'elles :
I want to use spells
I really really want to use a phone
magic!
cash
I want to ride a horse
- Dans la section Add intent parameters (Ajouter des paramètres d'intent), utilisez le nom de paramètre
chosenUnavailableOption
. - Cliquez sur Save (Enregistrer).
Lorsque vous saisissez les expressions d'entraînement, Actions Builder reconnaît spells
, phone
, magic
, cash
et horse
, les associe au type unavailable_options
et les met en surbrillance (les annote). Actions Builder ajoute automatiquement un paramètre d'intent dans la section Add intent parameters (Ajouter des paramètres d'intent), comme illustré ci-dessous.
Ce paramètre d'intent vous permet d'extraire le nom de l'option et d'utiliser cette option dans une invite.
Ajouter l'intent other_option
à la scène Fortune
Vous disposez à présent d'un intent, other_option
, qui peut gérer le fait que l'utilisateur a choisi une option autre que celles proposées au départ. Dans cette section, vous allez ajouter l'intent other_option
à la scène Fortune
. Vous allez utiliser le paramètre d'intent pour personnaliser l'invite en fonction de l'entrée utilisateur.
Pour ajouter l'intent other_option
à la scène Fortune
, procédez comme suit :
- Cliquez sur la scène Fortune (Prédiction).
- Cliquez sur + (signe plus) à côté de l'option User intent handling (Gestion des intents utilisateur).
- Sélectionnez
other_option
dans le menu déroulant de l'intent. - Cochez la case Send prompts (Envoyer des invites), puis ajoutez l'invite suivante :
candidates: - first_simple: variants: - speech: >- I have seen the future and a $intent.params.chosenUnavailableOption.original will not aid you on your journey.
L'expression $intent.params.chosenUnavailableOption
fait référence à l'objet du paramètre d'intent, et $intent.params.chosenUnavailableOption.original
désigne la valeur de cet objet. La propriété original
correspond à l'entrée brute spécifiée par l'utilisateur.
- Cliquez sur Save (Enregistrer).
Lorsqu'un utilisateur prononce une option figurant dans le type unavailable_options
durant la scène Fortune
, l'intent other_option
est ciblé et ajoute une invite à la file d'attente d'invites. Comme aucune transition n'est spécifiée, la boucle d'exécution de la scène se poursuit en réévaluant l'étape des conditions. L'emplacement chosenOptions
ajoute alors son invite à la file d'attente d'invites, qui est transmise à l'utilisateur.
Tester votre action dans le simulateur
Désormais, votre action devrait répondre de manière appropriée lorsqu'un utilisateur choisit l'une des options répertoriées dans le type unavailable_options
et spécifie l'aide qu'il souhaite obtenir. Elle devrait redemander ensuite à l'utilisateur de choisir l'une des options initiales (un dragon, un traducteur ou une boussole).
Pour tester votre action dans le simulateur, procédez comme suit :
- Dans la barre de navigation, cliquez sur Test (Tester).
- Saisissez
Talk to my test app
dans le champ Input (Entrée), puis appuyez surEnter
. - Saisissez
Yes
dans le champ Input (Entrée), puis appuyez surEnter
. Vous pouvez également cliquer sur le chip de suggestion Yes (Oui). - Saisissez
magic
dans le champ Input (Entrée), puis appuyez surEnter
.
Vous avez peut-être remarqué que l'invite n'est pas correcte lorsque l'utilisateur choisit "magic" (magie) en raison de l'article "a" (une) placé devant ce nom. Vous allez résoudre ce problème dans les sections suivantes.
Ajouter le gestionnaire unavailable_options
Pour placer l'article "a" (un/une) avant les choix appropriés du type unavailable_options
, vous pouvez configurer un gestionnaire d'événements dans votre logique de traitement pour vérifier si l'option choisie par l'utilisateur nécessite cet article. Commencez par configurer votre action pour appeler le gestionnaire dans la console.
Pour ajouter le gestionnaire unavailable_options
, procédez comme suit :
- Dans le menu de navigation, cliquez sur Develop (Développer).
- Cliquez sur la scène
Fortune
. - Sous User intent handling (Gestion des intents utilisateur), cliquez sur When other_option is matched (Quand other_option est ciblé) pour ouvrir la fenêtre.
- Décochez la case Send prompts (Envoyer des invites).
- Cochez la case Call your webhook (Appeler votre webhook).
- Saisissez
unavailable_options
dans la zone de texte du gestionnaire d'événements.
- Cliquez sur Save (Enregistrer).
Modifier et déployer le traitement
Maintenant que vous avez configuré votre action pour appeler le gestionnaire d'événements unavailable_options
, vous pouvez le modifier dans votre traitement et le déployer.
Pour modifier le traitement, procédez comme suit :
- Cliquez sur Webhook dans le menu de navigation.
- Ajoutez le code suivant sous le gestionnaire
greeting
:
app.handle('unavailable_options', conv => {
const option = conv.intent.params.chosenUnavailableOption.original;
const optionKey = conv.intent.params.chosenUnavailableOption.resolved;
let message = 'I have seen the future and ';
if(optionsNeedA.has(optionKey)){
message = message + 'a ';
}
message = message + `${option} will not aid you on your journey. `;
conv.add(message);
});
- Ajoutez le code suivant sous
const app = conversation();
:
const optionsNeedA = new Set();
optionsNeedA.add('horse').add('phone');
- Cliquez sur Save Fulfillment (Enregistrer le traitement).
- Cliquez sur Deploy Fulfillment (Déployer le traitement). Une fois le déploiement effectué, le message Your Cloud Function deployment is up to date (Le déploiement de la fonction Cloud est à jour) s'affiche au-dessus de votre éditeur.
Comprendre le code
Le gestionnaire unavailable_options
effectue les opérations suivantes :
- Il récupère les données
option
de l'objetconv
et attribueoption
à la propriétéoriginal
, qui est l'entrée brute de l'utilisateur. - Il attribue
optionKey
à la propriétéresolved
, qui est la clé du typeunavailable_options
. - Il vérifie si
optionKey
est l'une des options nécessitant l'article "a" (un/une). Si c'est le cas, le message est créé avec cet article. - Il ajoute le message via
conv.add(message)
.
Tester votre action dans le simulateur
Votre action devrait à présent adapter l'invite selon que l'option choisie par l'utilisateur dans le type unavailable_options
nécessite l'article "a" (un/une) ou non.
Pour tester votre action, procédez comme suit :
- Dans la barre de navigation, cliquez sur Test (Tester).
- Saisissez
Talk to my test app
(ou cliquez sur ce bouton) dans le champ Input (Entrée), puis appuyez surEnter
. - Saisissez
Yes
dans le champ Input (Entrée), puis appuyez surEnter
. Vous pouvez également cliquer sur le chip de suggestion Yes (Oui). - Saisissez
magic
dans le champ Input (Entrée), puis appuyez surEnter
. - Saisissez
horse
dans le champ Input (Entrée), puis appuyez surEnter
.
Votre action devrait ajouter l'article "a" (un) avant "horse" (cheval), tout en créant l'invite sans l'article "a" (une) pour "magic" (magie).
Félicitations !
Vous disposez désormais des compétences intermédiaires nécessaires pour créer des actions pour l'Assistant Google.
Sujets abordés
- Développer des actions conversationnelles à l'aide de la bibliothèque de traitement Node.js
- Utiliser des emplacements pour collecter des données auprès de l'utilisateur
- Utiliser des conditions pour ajouter une logique à la scène
- Ajouter une boucle de jeu
- Ajouter un déroulement de conversation
Autres ressources de formation
Pour en savoir plus sur la création d'actions pour l'Assistant Google, consultez les ressources suivantes :
- Documentation sur le développement d'actions pour l'Assistant Google
- Page GitHub Actions on Google, pour des exemples de code et des bibliothèques
- Communauté Reddit officielle des développeurs qui travaillent sur l'Assistant Google
- Consignes pour concevoir des conversations, afin de connaître les bonnes pratiques et les consignes sur les actions conversationnelles
Effacer votre projet (recommandé)
Pour éviter de vous facturer des frais, nous vous recommandons de supprimer les projets que vous ne comptez pas utiliser. Pour supprimer ceux que vous avez créés dans cet atelier de programmation, procédez comme suit :
- Suivez la procédure décrite dans la section Arrêter (supprimer) des projets pour supprimer le projet Cloud et ses ressources.
- Facultatif : suivez la procédure décrite dans la section Supprimer un projet pour supprimer immédiatement votre projet de la console Actions. Si vous ne le faites pas, votre projet sera supprimé automatiquement après un délai de 30 jours environ.
Suivez @ActionsOnGoogle sur Twitter pour connaître les dernières informations, et envoyez un tweet à #AoGDevs pour montrer votre création.
Enquête
Avant de partir, veuillez répondre à une courte enquête sur votre expérience.