arrow_back

Créer un fulfillment d'agent virtuel

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Créer un fulfillment d'agent virtuel

Lab 1 heure 30 minutes universal_currency_alt 1 crédit show_chart Débutant
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP792

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier, vous allez continuer à utiliser l'agent virtuel Pigeon Travel créé dans l'atelier Concevoir des flux conversationnels pour votre agent et ajouter du contexte ainsi que configurer le fulfillment pour rechercher et stocker des réservations dans Firestore.

Important : Pour réaliser cet atelier, vous aurez besoin du fichier ZIP de l'agent exporté à partir de l'atelier Concevoir des flux conversationnels pour votre agent. Si vous ne l'avez pas, vous devrez créer entièrement tous les intents et les entités dans l'atelier Concevoir des flux conversationnels pour votre agent avant d'effectuer les étapes de cet atelier.

Objectifs

Dans cet atelier, vous allez effectuer les tâches suivantes :

  • Créer une collection Firestore

  • Configurer le fulfillment en tant que code Cloud Functions pour que l'agent puisse rechercher et changer le nom sur la réservation

Configuration et prérequis

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Démarrer l'atelier et se connecter à la console Google Cloud

  1. Cliquez sur le bouton Démarrer l'atelier. Si l'atelier est payant, un pop-up s'affiche pour vous permettre de sélectionner un mode de paiement. Sur la gauche, vous trouverez le panneau Détails concernant l'atelier, qui contient les éléments suivants :

    • Le bouton Ouvrir la console Google
    • Le temps restant
    • Les identifiants temporaires que vous devez utiliser pour cet atelier
    • Des informations complémentaires vous permettant d'effectuer l'atelier
  2. Cliquez sur Ouvrir la console Google. L'atelier lance les ressources, puis ouvre la page Se connecter dans un nouvel onglet.

    Conseil : Réorganisez les onglets dans des fenêtres distinctes, placées côte à côte.

    Remarque : Si la boîte de dialogue Sélectionner un compte s'affiche, cliquez sur Utiliser un autre compte.
  3. Si nécessaire, copiez le nom d'utilisateur inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue Se connecter. Cliquez sur Suivant.

  4. Copiez le mot de passe inclus dans le panneau Détails concernant l'atelier et collez-le dans la boîte de dialogue de bienvenue. Cliquez sur Suivant.

    Important : Vous devez utiliser les identifiants fournis dans le panneau de gauche. Ne saisissez pas vos identifiants Google Cloud Skills Boost. Remarque : Si vous utilisez votre propre compte Google Cloud pour cet atelier, des frais supplémentaires peuvent vous être facturés.
  5. Accédez aux pages suivantes :

    • Acceptez les conditions d'utilisation.
    • N'ajoutez pas d'options de récupération ni d'authentification à deux facteurs (ce compte est temporaire).
    • Ne vous inscrivez pas aux essais offerts.

Après quelques instants, la console Cloud s'ouvre dans cet onglet.

Remarque : Vous pouvez afficher le menu qui contient la liste des produits et services Google Cloud en cliquant sur le menu de navigation en haut à gauche. Icône du menu de navigation

Activer l'API

  1. Dans Cloud Console, accédez au menu de navigation, puis sélectionnez APIs & Services > Dashboard (API et services > Tableau de bord).

618f7fd1b8d1eb67.png

  1. Cliquez sur Enable APIs and Services (Activer les API et les services) :

APIandServices_enableAPIs.png

  1. Recherchez Dialogflow :

cfbaa6e3758ef1d3.png

  1. Cliquez sur Dialogflow API (API Dialogflow) et, si l'API n'est pas activée, cliquez sur Enable (Activer) :

5b6d77d70f5ee4c3.png

Créer votre agent Dialogflow

Vous nommerez votre agent "pigeon-travel".

  1. Accédez à la console Dialogflow.

dialog-console.png

  1. Connectez-vous avec le bouton Google, et veillez à sélectionner les identifiants Qwiklabs avec lesquels vous vous êtes connecté à cet atelier. Cliquez ensuite sur Allow (Autoriser).

  2. Décochez les cases de préférences de messagerie et acceptez les conditions d'utilisation. Cliquez sur Accept (Accepter).

  3. Cliquez sur Create Agent (Créer un agent).

  4. Ajoutez maintenant les informations concernant l'agent affichées ci-dessous :

  • Agent Name (Nom de l'agent) : pigeon-travel

  • Default Time Zone (Fuseau horaire par défaut) : America/Denver

  • Google Project (Projet Google) : utilisez votre ID de projet Qwiklabs

  1. Cliquez sur Create (Créer).

Cliquez sur Check my progress (Vérifier ma progression) pour vérifier l'objectif. Créer l'agent Dialogflow

Importer votre agent Dialogflow

Dans l'atelier précédent, vous avez exporté l'agent Dialogflow créé. Vous allez maintenant le réimporter et continuer à le développer.

Cette procédure permet de créer un projet d'agent virtuel. Importez maintenant le travail réalisé précédemment.

  • Si vous n'avez pas de fichiers exportés sous la main, utilisez le fichier suivant :

https://storage.cloud.google.com/qwiklabs-resources-ccai-quest/pigeon-travel-gsp-792.zip
  • Téléchargez ce fichier sur votre poste de travail local.

  1. Cliquez sur l'icône des paramètres (en forme de roue dentée ⚙) à côté du nom de l'agent.

DF-agent-settings.png

  1. Sélectionnez l'onglet Export and Import (Exporter et importer).

DF-agent-settings-page.png

  1. Cliquez sur IMPORT FROM ZIP (Importer depuis un fichier ZIP).

  2. Cliquez sur SELECT FILE (Sélectionner un fichier) et accédez au fichier ZIP contenant la configuration de votre agent virtuel. Si vous le préférez, vous pouvez glisser-déposer le fichier.

DF-upload-agent.png

  1. Saisissez le mot "IMPORT" en majuscules pour activer le bouton d'importation, et cliquez sur IMPORT (Importer).

DF-upload-agent-import.png

  1. Cliquez sur DONE (OK) pour fermer la fenêtre d'importation une fois l'opération terminée.

La configuration existante est importée dans le projet d'agent que vous venez de créer.

Cliquez sur Check my progress (Vérifier ma progression) pour vérifier l'objectif. Importer votre agent Dialogflow

Configurer un fulfillment à l'aide de Cloud Functions pour rechercher des réservations dans Firestore

Jusqu'ici, l'agent a bien fonctionné en communiquant avec le client pour lui donner les informations qu'il demande, y compris un numéro de réservation. Cependant, les informations collectées ne sont ni vérifiées ni enregistrées pour permettre des actions ultérieures. Dans cette section, vous allez configurer le fulfillment en ajoutant le code Node.js et le déployer comme fonction Cloud pour que votre agent recherche la réservation en cours et ajoute la modification.

Configurer Firestore

  1. Dans Cloud Console, accédez au menu de navigation,Bases de données Storage > Firestore (Stockage > Firestore).

firestore-menu.png

  1. Deux options s'affichent : "Native mode" (Mode natif) et "Datastore mode" (Mode Datastore). Cliquez sur SELECT NATIVE MODE(Sélectionner mode natif).

firestore-native.png

  1. Pour l'emplacement, choisissez nam5 (United States) (États-Unis).

firestore-location.png

  1. Cliquez sur CREATE DATABASE (Créer une base de données). Une fois la base de données créée, vous pourrez créer une nouvelle collection.

  2. Cliquez sur START COLLECTION (Démarrer la collection).

  3. Complétez les détails en vous assurant qu'ils sont semblables aux informations figurant ci-dessous, puis cliquez sur SAVE (Enregistrer).

  • Collection ID (ID de collection) : réservations

  • Document ID (ID de document) : 100

  • Field name (Nom du champ) : fname

  • Field type (Type de champ) : string

  • Field value (Valeur du champ) : Isabel

Cliquez ensuite sur le bouton + pour ajouter une autre collection :

  • Field name (Nom du champ) : lname
  • Field type (Type de champ) : string
  • Field value (Valeur du champ) : Costa

Cliquez ensuite sur le bouton + pour ajouter une autre collection :

  • Field name (Nom du champ) : newname
  • Field type (Type de champ) : string
  • Field name (Nom de champ) :

firestore-start-collection.png

Vous avez ajouté votre premier document à une collection Firestore.

ID de document Firestore : bonnes pratiques

  • Évitez les ID de document "." et "…".

  • Évitez d'utiliser des barres obliques (/) dans les ID de document.

  • N'utilisez pas d'ID de document monotones croissants, tels que :

    • Client1, Client2, Client3, …
    • Produit 1, Produit 2, Produit 3, …

    Ces ID séquentiels peuvent générer des hotspots qui ont un impact sur la latence.

Fulfillment Dialogflow

  1. Cliquez sur Fulfillment dans le menu de gauche. Le provisionnement des ressources peut prendre quelques minutes.

  2. À côté de l'option Inline Editor (Éditeur intégré), faites glisser le curseur vers la droite pour qu'il passe sur ENABLED (Activé). Ceci active l'éditeur Cloud Functions dans votre agent Dialogflow. Remarque : Si vous recevez un message d'erreur, essayez d'actualiser la page, puis d'activer de nouveau le curseur.

4700c554b8705d90.png

  1. Une fois le curseur activé, un modèle par défaut s'affiche dans index.js.

  2. Cliquez sur le bouton Deploy (Déployer) en bas à droite. Cette opération peut prendre quelques minutes.

  3. Une fois le déploiement effectué, accédez à votre console GCP, puis, à l'aide du menu de gauche, accédez à Cloud Functions pour confirmer que la fonction est déployée (cherchez le nom que vous avez vu à l'étape 4).

Cliquez sur Check my progress (Vérifier ma progression) pour vérifier l'objectif. Configurer un fulfillment à l'aide de la fonction Cloud

  1. De retour dans la section Fulfillment de votre console Dialogflow, cliquez sur l'onglet index.js.

  2. Notez à nouveau qu'il y a déjà un code de démarrage incluant les fonctions de gestion des intents d'accueil et de remplacement par défaut. Vous devrez d'abord ajouter les lignes ci-dessous pour pouvoir travailler avec Firestore.

Ajoutez le code suivant au-dessus de la ligne qui indique process.env.DEBUG = 'dialogflow:debug'; :

const admin = require('firebase-admin');

Ajoutez ce bloc de code sous la ligne qui indique process.env.DEBUG = 'dialogflow:debug'; :

admin.initializeApp();
admin.firestore().settings( { timestampsInSnapshots: true });
const db = admin.firestore();
  1. Ajoutez maintenant le code suivant pour la gestion ou les réservations après les fonctions de gestionnaire pour les intents d'accueil et de remplacement.

Ajoutez le bloc de code suivant sous la ligne qui indique

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => { :

function reservation(agent) {
	let id = agent.parameters.reservationnumber.toString();
	let collectionRef = db.collection('reservations');
	let userDoc = collectionRef.doc(id);
	return userDoc.get()
		.then(doc => {
			if (!doc.exists) {
				agent.add('I could not find your reservation.');
			} else {
				db.collection('reservations').doc(id).update({
					newname: agent.parameters.newname
				}).catch(error => {
					console.log('Transaction failure:', error);
					return Promise.reject();
				});
				agent.add('Ok. I have updated the name on the reservation.');
			}
			return Promise.resolve();
		}).catch(() => {
			agent.add('Error reading entry from the Firestore database.');
		});
}
  1. Modifiez intentMap pour intégrer une entrée de mappage name.reservation-getname à la fonction que vous venez d'ajouter.

intentMap.set('name.reservation-getname', reservation);

afin que cela ressemble à ce qui suit :

  let intentMap = new Map();
  intentMap.set('name.reservation-getname', reservation);
  intentMap.set('Default Welcome Intent', welcome);
  intentMap.set('Default Fallback Intent', fallback);
  agent.handleRequest(intentMap);
  1. Mettez à jour package.json depuis "firebase-admin": "^8.13.1" vers :
"firebase-admin":"^8.12.1"
  1. Cliquez sur le bouton Deploy (déployer) pour enregistrer et déployer le code.

  2. Accédez à l'intent name.reservation-getname, tout en bas, en dessous de Fulfillment, et faites glisser le curseur à droite sur Enable the webhook call for this intent (Activer l'appel webhook pour cet intent).

c76162fe1c306fd0.png

  1. Faites un essai dans le simulateur en saisissant la question : change name on booking.

response1.png

Vous obtenez la réponse par défaut du type : Sure I can help you to change your name on the reservation. Can I have your first name?.

  1. Faites un essai en tapant le nom d'utilisateur que vous voulez, comme indiqué ci-dessous :

response2.png

  1. Saisissez 100 quand une réponse par défaut vous demande le numéro de réservation.

response3.png

  1. Saisissez ensuite le nouveau nom pour lequel vous souhaitez faire une réservation, par exemple : Kelly.

  2. Après avoir terminé, vous recevez une réponse par défaut du type :

response4.png

Vous obtenez une réponse par défaut, du type : Thank you dylan. I have changed the name on reservation number 100 to be kelly.

  1. Pour confirmer cela, accédez à la Cloud Console et, dans le menu de gauche, accédez à Firestore > Data (Firestore > données).

Le changement de nom s'affiche. Remarquez l'ajout d'une nouvelle paire clé/valeur rendant visible le nom d'origine ainsi que le nouveau nom.

firestore-entry.png

  1. Examinez les journaux pour vérifier qu'il n'y a pas d'erreur dans votre code en retournant dans la section Fulfillment de la console Dialogflow. Le lien vers les journaux Firebase se trouve en bas à gauche de la section View execution logs in the Google Cloud console (Voir les journaux d'exécution dans la console Google Cloud).

editor.png

  1. Examinez les journaux pour vérifier qu'il n'y a pas d'erreur menu de navigation > Operations > Logging (Opérations > Journalisation).

Dans Logs Viewer (Visionneuse de journaux), sélectionnez Cloud Function > dialogflowFirebaseFulfillment où vous pouvez vérifier tous les journaux associés.

stackdriver-logs.png

  1. Sinon, vous pouvez accéder directement au menu de navigation > Cloud Functions et cliquer sur VIEW LOGS (Afficher les journaux) en haut à droite.

Cliquez sur Check my progress (Vérifier ma progression) pour vérifier l'objectif. Tester l'agent avec le simulateur Dialogflow

(Facultatif) Exporter votre code

Exportez votre travail pour pouvoir l'utiliser dans l'atelier suivant. Sous Cloud Functions, cliquez sur l'onglet Source, faites défiler la page vers le bas, puis cliquez sur le bouton DOWNLOAD ZIP (Télécharger le fichier ZIP).

downloadSource.png

Exporter votre agent

Exportez l'agent en tant que fichier ZIP pour pouvoir l'importer au début de l'atelier suivant. Ainsi, vous pourrez réutiliser les intents et les entités que vous avez configurés.

  1. Cliquez sur l'icône des paramètres (en forme de roue dentée ⚙) à côté du nom de l'agent dans le menu de gauche.

DF-agent-settings.png

  1. Dans la page de paramètres qui s'affiche, accédez à l'onglet Export and Import (Exporter et importer).

DF-agent-settings-page.png

  1. Cliquez sur EXPORT AS ZIP (Exporter en tant que fichier ZIP). L'agent est alors téléchargé dans un fichier ZIP local.

Félicitations !

skills_final_ccai.png

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Votre compte et les ressources utilisées sont alors supprimés de la plate-forme d'atelier.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Voici à quoi correspond le nombre d'étoiles que vous pouvez attribuer à un atelier :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Dernière mise à jour du manuel : 04 janvier 2021
Dernier test du manuel : 04 janvier 2021

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.