1. Introduction
Vous regardez la télévision, mais vous ne trouvez pas la télécommande. Ou peut-être n'avez-vous pas envie de parcourir toutes les chaînes pour savoir si quelque chose d'intéressant est diffusé ? Demandez à l'Assistant Google ce qui passe à la télé ! Dans cet atelier, vous allez créer une action simple à l'aide de Dialogflow et apprendre à l'intégrer à l'Assistant Google.
Les exercices sont organisés selon une approche fréquemment suivie par les développeurs cloud :
- Créer un agent Dialogflow V2
- Créer une entité personnalisée
- Créer des intents
- Configurer un webhook avec Firebase Functions
- Tester le chatbot
- Activer l'intégration de l'Assistant Google
Objectif de cet atelier
Nous allons créer un agent chatbot de guide TV interactif pour l'Assistant Google. Vous pouvez demander au guide TV ce qui est actuellement diffusé sur une chaîne en particulier. Par exemple, "Qu'est-ce qui passe sur MTV ?" L'action Guide TV vous indiquera ce qui est actuellement diffusé et ce qui le sera ensuite. |
|
Points abordés
- Créer un chatbot avec Dialogflow V2
- Créer des entités personnalisées avec Dialogflow
- Créer une conversation linéaire avec Dialogflow
- Configurer des fulfillments de webhook avec Dialogflow et Firebase Functions
- Intégrer votre application à l'Assistant Google avec Actions on Google
Prérequis
- Vous aurez besoin d'une identité Google ou d'une adresse Gmail pour créer un agent Dialogflow.
- Des connaissances de base en JavaScript ne sont pas obligatoires, mais peuvent être utiles si vous souhaitez modifier le code d'exécution du webhook.
2. Configuration
Activer l'activité Web dans votre navigateur
- Cliquez sur http://myaccount.google.com/activitycontrols.
- Assurez-vous que l'activité sur le Web et les applications est activée :

Créer un agent Dialogflow
- Ouvrez https://console.dialogflow.com.
- Dans la barre de gauche, juste en dessous du logo, sélectionnez Create New Agent (Créer un agent). Si vous avez déjà des agents, cliquez d'abord sur le menu déroulant.

- Spécifiez un nom d'agent :
your-name-tvguide(utilisez votre propre nom).

- Sélectionnez English - en comme langue par défaut.
- Choisissez le fuseau horaire le plus proche de vous comme fuseau horaire par défaut.
- Cliquez sur Créer.
Configurer Dialogflow
- Dans le menu de gauche, cliquez sur l'icône en forme de roue dentée à côté du nom de votre projet.

- Saisissez la description d'agent suivante : Mon programme TV.

- Faites défiler la page jusqu'à Paramètres des journaux, puis activez les deux options pour enregistrer les interactions de Dialogflow et toutes les interactions dans Google Cloud Stackdriver. Nous en aurons besoin plus tard, au cas où nous voudrions déboguer notre action.

- Cliquez sur Enregistrer.
Configurer Actions on Google
- Cliquez sur le lien Assistant Google dans Découvrez comment ça marche dans l'Assistant Google dans le panneau de droite.

La page http://console.actions.google.com s'ouvre.
Si vous débutez avec Actions on Google, vous devez d'abord remplir ce formulaire :

- Essayez d'ouvrir votre action dans le simulateur en cliquant sur le nom du projet.
- Sélectionnez Test dans la barre de menu.

- Assurez-vous que le simulateur est défini sur English (Anglais), puis cliquez sur Talk to my test-app (Parler à mon appli test).
L'action vous accueillera avec l'intention par défaut de base de Dialogflow. Cela signifie que la configuration de l'intégration à Actions on Google a fonctionné.
3. Entités personnalisées
Les entités sont des objets sur lesquels votre application ou votre appareil effectuent des actions. Considérez-les comme des paramètres ou des variables. Dans notre guide TV, nous vous demanderons "Qu'est-ce qui est diffusé sur MTV ?". La MTV est l'entité et la variable. Je peux également demander d'autres chaînes, comme "National Geographic" ou "Comedy Central". L'entité collectée sera utilisée comme paramètre dans ma requête au service Web de l'API TV Guide.
En savoir plus sur les entités Dialogflow
Créer l'entité de canal
- Dans la console Dialogflow, cliquez sur l'élément de menu Entités.
- Cliquez sur Créer une entité.
- Nom de l'entité :
channel(assurez-vous qu'il est entièrement en minuscules) - Transmettez un nom de chaîne. (Certaines chaînes auront besoin d'un synonyme au cas où l'Assistant Google comprendrait autre chose.) Vous pouvez utiliser les touches de tabulation et Entrée pendant que vous saisissez du texte. Saisissez le numéro de chaîne en tant que valeur de référence. et les noms de chaînes comme synonymes, par exemple :
1 - 1, Net 1, Net Station 1

5**.** Passez en mode **Édition brute** en cliquant sur le bouton de menu à côté du bouton bleu "Enregistrer".

- Copiez et collez les autres entités au format CSV :
"2","2","Net 2, Net Station 2"
"3","3","Net 3, Net Station 3"
"4","4","RTL 4"
"5","5","Movie Channel"
"6","6","Sports Channel"
"7","7","Comedy Central"
"8","8","Cartoon Network"
"9","9","National Geographic"
"10","10","MTV"

- Cliquez sur Enregistrer.
4. Intents
Dialogflow utilise des intents pour catégoriser les intentions d'un utilisateur. Les intents possèdent des expressions d'entraînement, qui sont des exemples de ce qu'un utilisateur pourrait dire à votre agent. Par exemple, un utilisateur qui souhaite connaître le programme TV peut demander "What is on TV today?" (Quel est le programme TV aujourd'hui ?), "Qu'est-ce qui est diffusé en ce moment ?" ou simplement "guide TV".
Chaque fois qu'un utilisateur écrit ou dit quelque chose (une expression de l'utilisateur), Dialogflow fait correspondre cette expression à l'intent le plus approprié au sein de votre agent. La mise en correspondance des intents est également appelée classification des intents.
En savoir plus sur les intents Dialogflow
Modifier l'intent d'accueil par défaut
Lorsque vous créez un agent Dialogflow, deux intents par défaut sont créés automatiquement. L'intent d'accueil par défaut est le premier flux auquel vous accédez lorsque vous entamez une conversation avec l'agent. L'intent de remplacement par défaut est le flux que vous obtenez lorsque l'agent ne vous comprend pas ou ne peut pas faire correspondre un intent à ce que vous venez de dire.
- Cliquez sur Default Welcome Intent (Intent d'accueil par défaut).
Dans le cas de l'Assistant Google, il démarrera automatiquement avec l'intent d'accueil par défaut. En effet, Dialogflow écoute l'événement d'accueil. Toutefois, vous pouvez également appeler l'intention en prononçant l'une des phrases d'entraînement saisies.

Voici le message de bienvenue pour l'intent d'accueil par défaut :
Utilisateur | Agent |
"Ok Google, parle à ton programme TV." | "Bonjour, je suis l'agent du guide TV. Je peux vous dire ce qui est actuellement diffusé sur une chaîne de télévision. Par exemple, vous pouvez me demander : "Qu'est-ce qui passe sur MTV ?" |
- Faites défiler la page jusqu'à Réponses.
- Effacez toutes les réponses textuelles.
- Créez une réponse textuelle contenant le message d'accueil suivant :
Welcome, I am the TV Guide agent. I can tell you what's currently playing on a TV channel. For example, you can ask me: What's on MTV?

- Cliquez sur Enregistrer.
Créer un intent de test temporaire
Pour les tests, nous allons créer un intent de test temporaire afin de pouvoir tester le webhook plus tard.
- Cliquez à nouveau sur l'élément de menu Intents.
- Cliquez sur Créer un intent.
- Saisissez le nom de l'intent :
Test Intent(assurez-vous d'utiliser un T majuscule et un I majuscule). - Si vous écrivez l'intention différemment, le service backend ne fonctionnera pas.)

- Cliquez sur Ajouter des expressions d'entraînement.
Test my agentTest intent

- Cliquez sur Traitement > Activer le traitement.

Cette fois, nous ne coderons pas en dur une réponse. La réponse proviendra d'une fonction Cloud.
- Activez l'option Activer l'appel webhook pour cet intent.

- Cliquez sur Enregistrer.
Créer l'intention de chaîne
L'intention de canal contiendra cette partie de la conversation :
Utilisateur | Agent |
"Qu'y a-t-il sur Comedy Central ?" | ""Les Simpson sont diffusés sur Comedy Central depuis 18h. Ensuite, à 19h, Family Guy commencera."" |
- Cliquez à nouveau sur l'élément de menu Intents.
- Cliquez sur Créer un intent.
- Saisissez le nom de l'intention :
Channel Intent(veillez à utiliser un T majuscule et un I majuscule). - Si vous écrivez l'intention différemment, le service backend ne fonctionnera pas.) - Cliquez sur Ajouter des phrases d'entraînement, puis ajoutez les éléments suivants :
What's on MTV?What's playing on Comedy Central?What show will start at 8 PM on National Geographic?What is currently on TV?What is airing now.Anything airing on Net Station 1 right now?What can I watch at 7 PM?What's on channel MTV?What's on TV?Please give me the tv guide.Tell me what is on television.What's on Comedy Central from 10 AM?What will be on tv at noon?Anything on National Geographic?TV Guide

- Faites défiler la page jusqu'à Action and parameters (Action et paramètres).

Notez les entités @channel et @sys.time connues de Dialogflow. Plus tard dans votre webhook, le nom et la valeur du paramètre seront envoyés à votre service Web. Exemple :
channel=8
time=2020-01-29T19:00:00+01:00
- Marquer la chaîne comme obligatoire
Lorsque vous discutez avec l'agent TV Guide, vous devez toujours remplir le nom du paramètre de slot channel. Si le nom de la chaîne n'a pas été mentionné au début de la conversation, Dialogflow posera d'autres questions jusqu'à ce que tous les emplacements de paramètres soient remplis. 
Saisissez la requête suivante :
For which TV channel do you want to hear the tv guide information?In which TV channel are you interested?

- Ne définissez pas le paramètre de temps comme obligatoire.
L'heure sera facultative. Si aucune heure n'est spécifiée, le service Web renvoie l'heure actuelle.
- Cliquez sur Traitement.
Cette fois, nous ne coderons pas en dur une réponse. La réponse proviendra de la fonction Cloud. Activez donc le bouton Enable webhook call for this intent (Activer l'appel webhook pour cet intent).
- Cliquez sur Enregistrer.
5. Fulfillment de webhook
Si votre agent exige plus que des réponses d'intent statiques, vous devez utiliser le fulfillment pour connecter votre service Web à votre agent. La connexion à votre service Web vous permet d'effectuer des actions basées sur les expressions des utilisateurs et de leur renvoyer des réponses dynamiques. Par exemple, si un utilisateur souhaite recevoir la grille des programmes de MTV, votre service Web peut interroger votre base de données et lui fournir la grille des programmes de MTV.
- Cliquez sur Fulfillment dans le menu principal.
- Activez le bouton bascule Éditeur intégré.

Pour un test et une implémentation de webhook simples, vous pouvez utiliser l'éditeur intégré. Il utilise Cloud Functions for Firebase sans serveur.
- Cliquez sur l'onglet index.js dans l'éditeur, puis copiez et collez ce code JavaScript pour Node.js :
'use strict';
process.env.DEBUG = 'dialogflow:debug';
const {
dialogflow,
BasicCard,
Button,
Image,
List
} = require('actions-on-google');
const functions = require('firebase-functions');
const moment = require('moment');
const TVGUIDE_WEBSERVICE = 'https://tvguide-e4s5ds5dsa-ew.a.run.app/channel';
const { WebhookClient } = require('dialogflow-fulfillment');
var spokenText = '';
var results = null;
/* When the Test Intent gets invoked. */
function testHandler(agent) {
let spokenText = 'This is a test message, when you see this, it means your webhook fulfillment worked!';
if (agent.requestSource === agent.ACTIONS_ON_GOOGLE) {
let conv = agent.conv();
conv.ask(spokenText);
conv.ask(new BasicCard({
title: `Test Message`,
subTitle: `Dialogflow Test`,
image: new Image({
url: 'https://dummyimage.com/600x400/000/fff',
alt: 'Image alternate text',
}),
text: spokenText,
buttons: new Button({
title: 'This is a button',
url: 'https://assistant.google.com/',
}),
}));
// Add Actions on Google library responses to your agent's response
agent.add(conv);
} else {
agent.add(spokenText);
}
}
/* When the Channel Intent gets invoked. */
function channelHandler(agent) {
var jsonResponse = `{"ID":10,"Listings":[{"Title":"Catfish Marathon","Date":"2018-07-13","Time":"11:00:00"},{"Title":"Videoclips","Date":"2018-07-13","Time":"12:00:00"},{"Title":"Pimp my ride","Date":"2018-07-13","Time":"12:30:00"},{"Title":"Jersey Shore","Date":"2018-07-13","Time":"13:00:00"},{"Title":"Jersey Shore","Date":"2018-07-13","Time":"13:30:00"},{"Title":"Daria","Date":"2018-07-13","Time":"13:45:00"},{"Title":"The Real World","Date":"2018-07-13","Time":"14:00:00"},{"Title":"The Osbournes","Date":"2018-07-13","Time":"15:00:00"},{"Title":"Teenwolf","Date":"2018-07-13","Time":"16:00:00"},{"Title":"MTV Unplugged","Date":"2018-07-13","Time":"16:30:00"},{"Title":"Rupauls Drag Race","Date":"2018-07-13","Time":"17:30:00"},{"Title":"Ridiculousness","Date":"2018-07-13","Time":"18:00:00"},{"Title":"Punk'd","Date":"2018-07-13","Time":"19:00:00"},{"Title":"Jersey Shore","Date":"2018-07-13","Time":"20:00:00"},{"Title":"MTV Awards","Date":"2018-07-13","Time":"20:30:00"},{"Title":"Beavis & Butthead","Date":"2018-07-13","Time":"22:00:00"}],"Name":"MTV"}`;
var results = JSON.parse(jsonResponse);
var listItems = {};
spokenText = getSpeech(results);
for (var i = 0; i < results['Listings'].length; i++) {
listItems[`SELECT_${i}`] = {
title: `${getSpokenTime(results['Listings'][i]['Time'])} - ${results['Listings'][i]['Title']}`,
description: `Channel: ${results['Name']}`
}
}
if (agent.requestSource === agent.ACTIONS_ON_GOOGLE) {
let conv = agent.conv();
conv.ask(spokenText);
conv.ask(new List({
title: 'TV Guide',
items: listItems
}));
// Add Actions on Google library responses to your agent's response
agent.add(conv);
} else {
agent.add(spokenText);
}
}
/**
* Return a text string to be spoken out by the Google Assistant
* @param {object} JSON tv results
*/
var getSpeech = function(tvresults) {
let s = "";
if(tvresults['Listings'][0]) {
let channelName = tvresults['Name'];
let currentlyPlayingTime = getSpokenTime(tvresults['Listings'][0]['Time']);
let laterPlayingTime = getSpokenTime(tvresults['Listings'][1]['Time']);
s = `On ${channelName} from ${currentlyPlayingTime}, ${tvresults['Listings'][0]['Title']} is playing.
Afterwards at ${laterPlayingTime}, ${tvresults['Listings'][1]['Title']} will start.`
}
return s;
}
/**
* Return a natural spoken time
* @param {string} time in 'HH:mm:ss' format
* @returns {string} spoken time (like 8 30 pm i.s.o. 20:00:00)
*/
var getSpokenTime = function(time){
let datetime = moment(time, 'HH:mm:ss');
let min = moment(datetime).format('m');
let hour = moment(datetime).format('h');
let partOfTheDay = moment(datetime).format('a');
if (min == '0') {
min = '';
}
return `${hour} ${min} ${partOfTheDay}`;
};
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
var agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
let channelInput = request.body.queryResult.parameters.channel;
let requestedTime = request.body.queryResult.parameters.time;
let url = `${TVGUIDE_WEBSERVICE}/${channelInput}`;
var intentMap = new Map();
intentMap.set('Test Intent', testHandler);
intentMap.set('Channel Intent', channelHandler);
agent.handleRequest(intentMap);
});

- Cliquez sur l'onglet package.json dans l'éditeur, puis copiez et collez ce code JSON, qui importe toutes les bibliothèques Node.js Package Manager (NPM) :
{
"name": "tvGuideFulfillment",
"description": "Requesting TV Guide information from a web service.",
"version": "1.0.0",
"private": true,
"license": "Apache Version 2.0",
"author": "Google Inc.",
"engines": {
"node": "8"
},
"scripts": {
"start": "firebase serve --only functions:dialogflowFirebaseFulfillment",
"deploy": "firebase deploy --only functions:dialogflowFirebaseFulfillment"
},
"dependencies": {
"actions-on-google": "^2.2.0",
"firebase-admin": "^5.13.1",
"firebase-functions": "^2.0.2",
"request": "^2.85.0",
"request-promise": "^4.2.5",
"moment" : "^2.24.0",
"dialogflow-fulfillment": "^0.6.1"
}
}

- Cliquez sur le bouton Deploy (Déployer). Cela prendra un peu de temps, car votre fonction sans serveur est en cours de déploiement. Un pop-up s'affiche en bas de l'écran pour vous indiquer votre statut.
- Testons le webhook pour voir si le code fonctionne. Dans le simulateur à droite, saisissez :
Test my agent.
Si tout est correct, le message "Ceci est un message de test" devrait s'afficher.
- Testons l'intention de la chaîne. Posez maintenant la question suivante :
What's on MTV?
Si tout est correct, vous devriez voir :
"MTV Unplugged est diffusé sur MTV à partir de 16h30. Ensuite, à 17h30, Rupauls Drag Race commencera."
Étapes facultatives : Firebase
Si vous testez cela avec une autre chaîne, vous remarquerez que les résultats TV sont les mêmes. En effet, la fonction Cloud n'extrait pas encore les données d'un véritable serveur Web.
Pour ce faire, nous devrons établir une connexion réseau sortante.
Si vous souhaitez tester cette application avec un service Web, passez à la formule Blaze de Firebase. Remarque : Ces étapes sont facultatives. Vous pouvez également passer aux étapes suivantes de cet atelier pour continuer à tester votre application dans Actions on Google.
- Accédez à la console Firebase : https://console.firebase.google.com.
- En bas de l'écran, appuyez sur le bouton Mettre à niveau.

Sélectionnez le forfait Blaze dans le pop-up.
- Maintenant que nous savons que le webhook fonctionne, nous pouvons continuer et remplacer le code de
index.jspar le code ci-dessous. Cela vous permettra de demander des informations sur le guide TV au service Web :
'use strict';
process.env.DEBUG = 'dialogflow:debug';
const {
dialogflow,
BasicCard,
Button,
Image,
List
} = require('actions-on-google');
const functions = require('firebase-functions');
const moment = require('moment');
const { WebhookClient } = require('dialogflow-fulfillment');
const rp = require('request-promise');
const TVGUIDE_WEBSERVICE = 'https://tvguide-e4s5ds5dsa-ew.a.run.app/channel';
var spokenText = '';
var results = null;
/* When the Test Intent gets invoked. */
function testHandler(agent) {
let spokenText = 'This is a test message, when you see this, it means your webhook fulfillment worked!';
if (agent.requestSource === agent.ACTIONS_ON_GOOGLE) {
let conv = agent.conv();
conv.ask(spokenText);
conv.ask(new BasicCard({
title: `Test Message`,
subTitle: `Dialogflow Test`,
image: new Image({
url: 'https://dummyimage.com/600x400/000/fff',
alt: 'Image alternate text',
}),
text: spokenText,
buttons: new Button({
title: 'This is a button',
url: 'https://assistant.google.com/',
}),
}));
// Add Actions on Google library responses to your agent's response
agent.add(conv);
} else {
agent.add(spokenText);
}
}
/* When the Channel Intent gets invoked. */
function channelHandler(agent) {
var listItems = {};
spokenText = getSpeech(results);
for (var i = 0; i < results['Listings'].length; i++) {
listItems[`SELECT_${i}`] = {
title: `${getSpokenTime(results['Listings'][i]['Time'])} - ${results['Listings'][i]['Title']}`,
description: `Channel: ${results['Name']}`
}
}
if (agent.requestSource === agent.ACTIONS_ON_GOOGLE) {
let conv = agent.conv();
conv.ask(spokenText);
conv.ask(new List({
title: 'TV Guide',
items: listItems
}));
// Add Actions on Google library responses to your agent's response
agent.add(conv);
} else {
agent.add(spokenText);
}
}
/**
* Return a text string to be spoken out by the Google Assistant
* @param {object} JSON tv results
*/
var getSpeech = function(tvresults) {
let s = "";
if(tvresults && tvresults['Listings'][0]) {
let channelName = tvresults['Name'];
let currentlyPlayingTime = getSpokenTime(tvresults['Listings'][0]['Time']);
let laterPlayingTime = getSpokenTime(tvresults['Listings'][1]['Time']);
s = `On ${channelName} from ${currentlyPlayingTime}, ${tvresults['Listings'][0]['Title']} is playing.
Afterwards at ${laterPlayingTime}, ${tvresults['Listings'][1]['Title']} will start.`
}
return s;
}
/**
* Return a natural spoken time
* @param {string} time in 'HH:mm:ss' format
* @returns {string} spoken time (like 8 30 pm i.s.o. 20:00:00)
*/
var getSpokenTime = function(time){
let datetime = moment(time, 'HH:mm:ss');
let min = moment(datetime).format('m');
let hour = moment(datetime).format('h');
let partOfTheDay = moment(datetime).format('a');
if (min == '0') {
min = '';
}
return `${hour} ${min} ${partOfTheDay}`;
};
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
var agent = new WebhookClient({ request, response });
console.log('Dialogflow Request headers: ' + JSON.stringify(request.headers));
console.log('Dialogflow Request body: ' + JSON.stringify(request.body));
let channelInput = request.body.queryResult.parameters.channel;
let requestedTime = request.body.queryResult.parameters.time;
let url = `${TVGUIDE_WEBSERVICE}/${channelInput}`;
if (requestedTime) {
console.log(requestedTime);
let offsetMin = moment().utcOffset(requestedTime)._offset;
console.log(offsetMin);
let time = moment(requestedTime).utc().add(offsetMin,'m').format('HH:mm:ss');
url = `${TVGUIDE_WEBSERVICE}/${channelInput}/${time}`;
}
console.log(url);
var options = {
uri: encodeURI(url),
json: true
};
// request promise calls an URL and returns the JSON response.
rp(options)
.then(function(tvresults) {
console.log(tvresults);
// the JSON response, will need to be formatted in 'spoken' text strings.
spokenText = getSpeech(tvresults);
results = tvresults;
})
.catch(function (err) {
console.error(err);
})
.finally(function(){
// kick start the Dialogflow app
// based on an intent match, execute
var intentMap = new Map();
intentMap.set('Test Intent', testHandler);
intentMap.set('Channel Intent', channelHandler);
agent.handleRequest(intentMap);
});
});
6. Actions associées à Google
Actions on Google est une plate-forme de développement pour l'Assistant Google. Elle permet le développement d'actions par des tiers (applets pour l'Assistant Google qui offrent des fonctionnalités étendues).
Vous devrez invoquer une action Google en demandant à Google d'ouvrir une application ou de lui parler.
Cela ouvrira votre action, changera la voix et vous quitterez le champ d'application de l'Assistant Google "natif". Cela signifie que tout ce que vous demandez à votre agent à partir de ce moment doit être créé par vous. Vous ne pouvez pas demander soudainement à l'Assistant Google des informations sur la météo de Google si c'est ce que vous voulez. Vous devez d'abord quitter (fermer) le champ d'application de votre action (votre application).
Tester votre action dans le simulateur de l'Assistant Google
Testons la conversation suivante :
Utilisateur | Assistant Google |
"Hey Google, parle à your-name-tv-guide." | "Pas de problème. Donne-moi your-name-tv-guide." |
Utilisateur | Agent Your-Name-TV-Guide |
- | "Bienvenue, je suis le guide TV…" |
Tester mon agent | "Ceci est un message de test. Si vous le voyez, cela signifie que votre webhook a fonctionné !" |
Qu'est-ce qu'il y a sur MTV ? | Sur MTV, MTV Unplugged est diffusé depuis 16h30. Ensuite, à 17h30, Rupauls Drag Race commencera. |
- Repasser au simulateur de l'Assistant Google
Ouvrez https://console.actions.google.com.
- Cliquez sur l'icône en forme de micro et posez la question suivante :

Talk to my test agentTest my agent
L'Assistant Google doit répondre :

- Demandez maintenant :
What's on Comedy Central?
Cette opération devrait renvoyer les valeurs ci-dessous :
Les Simpson sont actuellement diffusés sur Comedy Central à partir de 18h. Ensuite, à 19h, Family Guy commencera.
7. Félicitations
Bravo ! Vous venez de créer votre première action pour l'Assistant Google avec Dialogflow.
Comme vous l'avez peut-être remarqué, votre action s'exécutait en mode test, qui est associé à votre compte Google. Si vous vous connectez à votre appareil Nest ou à l'application Assistant Google sur votre téléphone iOS ou Android avec le même compte. Vous pouvez également tester votre action.
Il s'agit d'une démonstration d'atelier. Toutefois, lorsque vous créez réellement des applications pour l'Assistant Google, vous pouvez envoyer votre Action pour approbation. Pour en savoir plus, consultez ce guide.
Points abordés
- Créer un chatbot avec Dialogflow V2
- Créer des entités personnalisées avec Dialogflow
- Créer une conversation linéaire avec Dialogflow
- Configurer des fulfillments de webhook avec Dialogflow et Firebase Functions
- Intégrer votre application à l'Assistant Google avec Actions on Google
Et ensuite ?
Cet atelier de programmation vous a plu ? Découvrez ces excellents ateliers !
Poursuivez cet atelier de programmation en l'intégrant à Google Chat :
Créer un guide TV Google Chat avec G Suite et Dialogflow
- Créer des actions pour l'Assistant Google avec Dialogflow (niveau 1)
- Créer des actions pour l'Assistant Google avec Dialogflow (niveau 2)
- Créer des actions pour l'Assistant Google avec Dialogflow (niveau 3)
- Comprendre le fulfillment en intégrant Dialogflow à Google Agenda
- Intégrer l'API Google Cloud Vision à Dialogflow
