Créer un agent à l'aide de flux

Ce guide vous explique comment créer et tester un agent de commande de t-shirts simple à l'aide de flux à l'aide de la console Dialogflow CX. Lorsque vous interagissez avec cet agent, vous pouvez demander l'emplacement du magasin, obtenir les horaires d'ouverture ou passer commande.

L'agent terminé pour ce guide sera représenté par la console comme suit :

Capture d'écran du graphique de l'agent

Avant de commencer

Avant de lire ce guide, procédez comme suit :

  1. Consultez les principes de base de Flow.
  2. Effectuez la procédure de configuration.

Créer un agent

Créez un agent pour ce guide :

  1. Ouvrez la console Dialogflow CX.
  2. Créez ou choisissez un projet.
  3. Cliquez sur Create Agent (Créer un agent).
  4. Sélectionnez Build your own (Créer la vôtre).
  5. Remplissez le formulaire pour les paramètres de base de l'agent :
    1. Vous pouvez choisir n'importe quel nom à afficher.
    2. Sélectionnez votre lieu préféré. Cliquez sur le bouton Modifier si vous souhaitez modifier les paramètres de localisation avancés.
    3. Sélectionnez le fuseau horaire de votre choix.
    4. Sélectionnez la langue par défaut de votre agent.
    5. Activez éventuellement Stackdriver Logging.
  6. Cliquez sur Enregistrer.

Importation facultative d'agent

Ce guide vous explique les étapes à suivre pour créer un agent de commande de t-shirts simple. Si vous souhaitez ignorer les étapes de la console, vous pouvez télécharger l'agent et l'importer.

Flux et intents par défaut

Le flux et les intents suivants sont créés automatiquement pour un nouvel agent. Vous pouvez trouver les intents en cliquant sur Gérer, puis sur Intents. Vous pouvez trouver le flux en cliquant sur Compiler.

Terme Définition
Intent d'accueil par défaut L'intent d'accueil par défaut comporte des expressions d'entraînement simples telles que "Salut" ou "Bonjour", qui correspondent à l'entrée initiale de l'utilisateur final. Vous pouvez modifier cet intent comme bon vous semble.
Intent négatif par défaut L'intent négatif par défaut peut être utilisé pour ajouter des phrases d'entraînement qui agissent comme des exemples négatifs à cet intent.
Flux de démarrage par défaut Le flux de démarrage par défaut peut être utilisé comme seul flux. Il s'agit du seul flux qui sera utilisé dans ce guide. Pour les agents plus complexes, vous pouvez ajouter d'autres flux. Ce flux dispose d'une route d'intent par défaut avec l'intent d'accueil par défaut comme exigence d'intent.

Tester la réponse d'accueil par défaut

Le flux et les intents par défaut peuvent gérer une conversation de base avec un message de bienvenue uniquement. Pour tester votre nouvel agent, procédez comme suit :

  1. Cliquez sur le bouton Tester l'agent pour ouvrir le simulateur.
  2. Saisissez hello dans la zone de texte, puis appuyez sur Entrée.
  3. L'agent répond par une réponse d'accueil par défaut.
  4. Fermez le simulateur.

Capture d'écran du simulateur

L'agent a effectué les étapes suivantes pour cette entrée de l'utilisateur final :

  1. Lorsque vous avez fourni une entrée, le flux de démarrage par défaut était le flux actif et la page d'accueil du flux était la page active. Chacun des gestionnaires d'état appliqués au flux actif était dans la portée. Par conséquent, l'agent les a évalués.
  2. L'une des routes évaluées a l'intent d'accueil par défaut comme exigence d'intent. Votre entrée correspond à cet intent, et la route a donc été appelée.
  3. La route appelée comporte plusieurs messages de réponse de fulfillment. L'agent en a choisi une au hasard et l'a ajoutée à la file d'attente de réponse.
  4. La route appelée n'a pas de cible de transition. Le flux et la page actifs n'ont donc pas été modifiés.
  5. L'agent a répondu avec le contenu de la file d'attente de réponses.

Modifier la réponse d'accueil

Vous pouvez modifier ce message de bienvenue. Pour modifier la réponse d'accueil, procédez comme suit :

  1. Cliquez sur l'onglet Compiler.
  2. Sélectionnez le Flux de démarrage par défaut dans la section Flux.
  3. Cliquez sur le nœud Démarrer dans le graphique. Il s'agit de la page d'accueil du flux de démarrage par défaut.
  4. Recherchez la route d'intent avec l'intent d'accueil par défaut comme exigence d'intent et cliquez dessus. Un panneau permettant de modifier les informations sur la route d'intent s'affiche.
  5. Recherchez la section fulfillment et supprimez tous les messages de réponse, puis ajoutez Hello, this is a shirt ordering virtual agent. How can I help you? comme seule réponse.
  6. Cliquez sur Enregistrer.
  7. Fermez le panneau de modification de la route d'intent.

Capture d'écran de la réponse de l'agent

Tester la réponse d'accueil mise à jour

Pour tester votre réponse mise à jour :

  1. Cliquez sur le bouton Tester l'agent pour ouvrir le simulateur.
  2. Saisissez hello dans la zone de texte, puis appuyez sur Entrée.
  3. L'agent répond par votre nouveau message.
  4. Fermez le simulateur.

Page de l'emplacement du magasin

Une conversation (session) d'agents conversationnels (Dialogflow CX) peut être décrite et visualisée en tant que machine à états. Les états d'une session CX sont représentés par des pages. Jusqu'à présent, vous n'avez qu'une seule page. L'agent n'est donc pas très utile. Dans cette section, vous allez créer une autre page qui gère les questions concernant l'emplacement du magasin.

Créer l'intent de l'emplacement

Un intent permet de catégoriser l'intention exprimée par un utilisateur final durant un tour de parole. Pour créer un intent correspondant lorsque l'entrée de l'utilisateur final demande l'emplacement du magasin :

  1. Sélectionnez l'onglet Gérer.
  2. Cliquez sur Intents.
  3. Cliquez sur Create (Créer).
  4. Saisissez store.location comme nom pour l'intent.
  5. Entrez les phrases d'entraînement suivantes :
    • Where is the store?
    • Directions
    • Tell me the address
    • Where do I pick up my order?
    • How do I get there?
    • Where is the store located?
    • What street are you on?
    • What is your address?
    • How do I get to your store?
    • Where are you located?
  6. Cliquez sur Enregistrer.

Capture d'écran de l'intent

Créer la page de l'emplacement

Maintenant, créez la page. Vous pouvez ajouter à cette page un fulfillment des entrées qui est appelé chaque fois que la page devient active. Ce fulfillment d'entrée doit contenir un message de réponse indiquant l'emplacement du magasin. Pour créer la page de l'emplacement du magasin, procédez comme suit :

  1. Cliquez sur l'onglet Compiler.
  2. Sélectionnez le Flux de démarrage par défaut dans la section Flux.
  3. Cliquez sur le bouton d'ajout dans la section Pages. Une saisie de texte pour le nom de la page s'affiche.
  4. Saisissez Store Location comme nom de page et appuyez sur Entrée.
  5. Cliquez sur le bouton des options à côté du nom de la page.
  6. Sélectionnez Modifier pour ouvrir le panneau de configuration de la page.
  7. Recherchez Traitement des entrées, puis cliquez sur Modifier le traitement.
  8. Saisissez Our store is located at 1007 Mountain Drive, Gotham City, NJ. dans le champ L'agent dit.
  9. Cliquez sur Enregistrer.
  10. Fermez le panneau de configuration de la page.

Capture d'écran de la page

Ajouter une route d'intent d'emplacement au flux

Vous devez maintenant créer une route dont la page d'emplacement du magasin est utilisée comme cible de transition. Lorsque cette route est appelée, la session passe à la page de l'emplacement du magasin. Cette route est appliquée au flux de démarrage par défaut. Elle est donc disponible dans la portée tant que le flux est actif. Pour un agent à flux unique, cela signifie que la route est toujours comprise dans la portée. À tout moment dans la conversation, l'utilisateur final peut demander l'emplacement du magasin, et cette route est appelée.

Pour créer cette route :

  1. Cliquez sur l'onglet Compiler.
  2. Sélectionnez le Flux de démarrage par défaut dans la section Flux.
  3. Cliquez sur le nœud Démarrer dans le graphique. Il s'agit de la page d'accueil du flux de démarrage par défaut.
  4. Ajoutez la route d'intent suivante :
    • Intent : store.location
    • Page de transition : Store Location
  5. Cliquez sur Enregistrer.
  6. Fermez le panneau de modification de la route d'intent.

Capture d'écran de la route d'intent

Lorsque vous fermez le panneau de configuration, vous remarquerez que votre nouvelle page comporte un nœud sur le graphique. La flèche du nœud Démarrer vers le nœud Emplacement du magasin indique comment la session peut passer d'un nœud à un autre.

Tester la page d'emplacement du magasin

Pour tester votre page :

  1. Cliquez sur le bouton Tester l'agent pour ouvrir le simulateur.
  2. Saisissez What is the store location? et appuyez sur Entrée.
  3. L'agent fournit l'adresse.
  4. Fermez le simulateur.

L'agent a effectué les étapes suivantes pour l'entrée de l'utilisateur final :

  1. Lorsque vous avez fourni une entrée, le flux de démarrage par défaut était le flux actif et la page d'accueil du flux était la page active. Chacun des gestionnaires d'état appliqués au flux actif était dans la portée. Par conséquent, l'agent les a évalués.
  2. L'une des routes évaluées dispose de store.location comme exigence d'intent. Votre entrée correspond à cet intent, et la route a donc été appelée.
  3. La route appelée ne comporte aucun message de réponse de fulfillment, donc elle n'a rien ajouté à la file d'attente de réponses.
  4. La route appelée possède une cible de transition. La page active est donc modifiée comme page Emplacement du magasin.
  5. La page Emplacement du magasin dispose d'un fulfillment d'entrée. Le message de réponse du fulfillment a donc été ajouté à la file d'attente de réponses (l'adresse).
  6. L'agent a répondu avec le contenu de la file d'attente de réponses.

Page des horaires d'ouverture du magasin à l'aide de la création intégrée

Dans cette section, vous créez une page Horaires d'ouverture du magasin qui gère les questions de l'utilisateur final concernant les horaires d'ouverture. Dans les sections précédentes, vous avez créé des pages et des intents à partir des onglets Créer et Gérer. Cette section vous permet de créer plus rapidement ces types avec la création intégrée.

Pour créer de manière intégrée une route d'intent, un intent, et une page, procédez comme suit :

  1. Cliquez sur le nœud Démarrer dans le graphique.
  2. Cliquez sur le bouton "Ajouter" une Route d'intent. Le panneau de modification de la route d'intent s'ouvre.
  3. Dans la section Intent, sélectionnez Nouvel intent. Le panneau de modification des intents s'ouvre.
  4. Créez un intent store.hours avec les phrases d'entraînement suivantes :

    • What are your store hours?
    • What time do you close?
  5. Cliquez sur Enregistrer pour enregistrer l'intent. Le panneau de modification des intents se ferme.

  6. Faites défiler la page jusqu'à la section Transition du panneau de modification de la route d'intent.

  7. Pour la transition de Page, sélectionnez Nouvelle page.

  8. Saisissez Store Hours dans la zone de texte qui s'affiche.

  9. Cliquez sur Enregistrer. La nouvelle page apparaît sur le graphique, car une transition y conduit.

  10. Fermez le panneau de modification de la route d'intent.

  11. Ajoutez un fulfillment d'entrée qui fournit les horaires d'ouverture. Les étapes sont similaires à celles utilisées pour l'emplacement du magasin.

  12. Fermez tous les panneaux de modification ouverts.

Page des articles commandés

La prochaine étape consiste à créer une page utilisant des paramètres de formulaire. Lorsque l'utilisateur final demande à commencer un nouveau t-shirt, la session passe à cette page. Lorsqu'elle est active, cette page collecte la taille et la couleur de la commande de t-shirts.

Créer un type d'entité personnalisé pour une taille de t-shirt

Les types d'entité permettent de contrôler la manière dont les données des entrées de l'utilisateur final sont extraites. Les agents conversationnels (Dialogflow CX) fournissent des entités système prédéfinies correspondant à de nombreux types de données courants. Par exemple, il existe des entités système pour la mise en correspondance des dates, des heures, des couleurs, des adresses e-mail, etc. Vous pouvez également créer vos propres entités pour la mise en correspondance de données personnalisées.

Pour cet agent, vous pouvez utiliser une entité système pour la couleur du T-shirt, mais vous devez créer une entité personnalisée pour la taille du t-shirt. Le type d'entité de la taille doit contenir les entrées d'entité suivantes :

Entité Synonymes
Petite petit, small
moyen moyen, medium, normal
grand grand, large

Pour créer cette entité, procédez comme suit :

  1. Sélectionnez l'onglet Gérer.
  2. Cliquez sur Entity Types (Types d'entités).
  3. Cliquez sur +Create (Créer).
  4. Définissez le nom à afficher sur size.
  5. Ajoutez les entrées d'entité répertoriées dans le tableau ci-dessus.
  6. Cliquez sur Enregistrer.

Créer un intent de commande avec des paramètres d'intent

Vous avez besoin d'un intent mis en correspondance lorsque l'utilisateur final fait une nouvelle commande de t-shirts. Cet intent doit également capturer la couleur et/ou la taille de t-shirt souhaitées fournies par l'utilisateur final au cas où ces informations seraient fournies à l'avance.

Les paramètres sont utilisés pour capturer et mentionner des valeurs ayant été fournies par l'utilisateur final au cours d'une session. Chaque paramètre possède un nom et un type d'entité. Contrairement aux entrées utilisateur brutes, les paramètres sont des données structurées pouvant être utilisées pour exécuter une logique ou générer des réponses.

Vous contrôlez la manière dont les données de l'utilisateur final sont extraites avec la correspondance d'intent en annotant des parties de vos phrases d'entraînement et en configurant les paramètres d'intent associés. Par exemple, imaginons que vous définissiez une phrase d'entraînement comme "Quel temps fera-t-il demain à Tokyo ?". Vous devez annoter "demain" avec le paramètre date et "Tokyo" avec le paramètre location. Lorsque vous annotez des mots dans une phrase d'entraînement, les agents conversationnels (Dialogflow CX) reconnaissent que ce ne sont que des exemples de valeurs réelles fournies par les utilisateurs finaux au moment de l'exécution. Si l'entrée d'un utilisateur final est "Quel temps est prévu pour vendredi à Sydney ?", Les agents conversationnels (Dialogflow CX) extraient le paramètre date de "vendredi" et le paramètre location de "Sydney".

Pour annoter une phrase d'entraînement à l'aide de la console, procédez comme suit :

  1. Sélectionnez le texte de la phrase d'entraînement que vous souhaitez annoter.
  2. Sélectionnez le type d'entité souhaité dans la liste.
  3. Un paramètre est créé pour vous dans le tableau des paramètres présenté ci-dessous.

Créez un intent semblable à celui que vous avez suivi ci-dessus. Nommez cet intent order.new. Pour chaque phrase contenant une couleur, annotez la couleur avec un paramètre color et le type d'entité système @sys.color. Pour chaque phrase contenant une taille de t-shirt, annotez le fichier avec un paramètre size et le type d'entité personnalisé @size que vous avez créés précédemment. Vos expressions et paramètres d'entraînement doivent se présenter comme suit :

Capture d'écran de l'intent

Créer une page de commande

Créez une page de commande en suivant les étapes semblables aux étapes précédentes :

  • Nom à afficher : New Order
  • Fulfillment d'entrée : Ok, let's start a new order.

Ajouter un formulaire à la page de commande

Pour chaque page, vous pouvez définir un formulaire, qui est une liste de paramètres devant être collectés par l'utilisateur final pour la page. L'agent interagit avec l'utilisateur final pour plusieurs tours de conversation, jusqu'à ce qu'il ait collecté tous les paramètres du formulaire requis, également appelés paramètres de page Pour chaque paramètre du formulaire, vous fournissez également des invites que l'agent utilise pour demander ces informations à l'utilisateur final. Ce processus est appelé le remplissage du formulaire.

Lorsqu'un utilisateur final fournit des paramètres d'intent pour une correspondance d'intent, ces paramètres deviennent des paramètres de session. Lorsqu'une page devient initialement active, tous ses paramètres de formulaire sont préremplis avec tous les paramètres de session ayant un nom similaire. Ainsi, si l'utilisateur final fournit la taille ou la couleur en cas de correspondance de l'intent order.new, ces valeurs seront automatiquement renseignées pour le formulaire.

Pour la nouvelle page de commande, vous devez définir deux paramètres de formulaire requis :

Requis Nom à afficher Type d'entité Est une liste Prompt
color @sys.color Quelle couleur voulez-vous ?
size @size Quelle taille voulez-vous ?

Pour ajouter ce formulaire :

  1. Cliquez sur la page Nouvelle commande dans le graphique.
  2. Cliquez sur le bouton "Ajouter" des Paramètres. Le panneau de modification des paramètres s'ouvre.
  3. Ajoutez les paramètres comme décrit dans le tableau ci-dessus.
  4. Cliquez sur Enregistrer.
  5. Fermez le panneau de modification des paramètres.

Ajouter une route d'intent de commande au flux

Comme pour les étapes que vous avez suivies précédemment, ajoutez une route au flux de démarrage par défaut. Cette route doit être appelée lorsque l'utilisateur final souhaite effectuer une nouvelle commande :

  • Intent : order.new
  • Page de la cible de transition : Nouvelle commande

Page de confirmation

La dernière page confirme simplement la commande et met fin à la session.

Créer la page de confirmation

Créez une page de confirmation avec une réponse utilisant les paramètres de session pour confirmer la commande :

  • Nom à afficher : Order Confirmation
  • Fulfillment d'entrée : You can pick up your order for a $session.params.size $session.params.color shirt in 7 to 10 business days. Goodbye.

Ajouter des routes de condition à la page de commande

Vous pouvez également utiliser des conditions pour déterminer si une route est appelée. Les conditions sont couramment utilisées pour vérifier si un formulaire est terminé ou si elles sont toujours configurées pour être appelées lors de l'évaluation.

Pour définir des conditions dans la console, consultez la documentation Définir des conditions.

Ajoutez la route suivante à la page de commande, qui sera appelée une fois le formulaire rempli. Notez que cette route de condition utilise des références de paramètres dans sa réponse à l'utilisateur final et comment elle transfère la session vers la page Confirmation de commande.

  • Condition : $page.params.status = "FINAL"
  • L'agent dit : You have selected a $session.params.size, $session.params.color shirt.
  • Page de transition : Order Confirmation

Ajoutez la route suivante à la page de commande, qui sera appelée pour chaque tour de conversation dans lequel la page est active et la route de condition est évaluée. Lorsque la condition ci-dessus est évaluée et appelée, la page devient inactive. Par conséquent, cette route de condition true n'est pas évaluée :

  • Condition : true
  • L'agent dit : I'd like to collect a bit more information from you.

Créer une route de condition pour terminer la session

Ajoutez la route de condition suivante à la page Confirmer la commande pour terminer la session une fois que cette page est active et que son fulfillment d'entrée est traité :

  • Condition : true
  • Cible de transition : Page : End Session

Tester l'agent terminé

Testez l'agent à l'aide de la boîte de dialogue suivante :

Dialogue Explication
Utilisateur final : Bonjour
Agent : Bonjour, il s'agit d'un agent virtuel de commande de t-shirts. Comment puis-je vous aider ?
  1. La route intent d'accueil par défaut du flux de démarrage par défaut est appelée.
  2. Le fulfillment pour ce gestionnaire d'état ("Bonjour, c'est...") est ajouté à la file d'attente de réponses.
  3. L'agent envoie la file d'attente de réponses à l'utilisateur final.
Utilisateur final : Je souhaite acheter un t-shirt bleu
Agent : Commençons par créer une nouvelle commande.
Agent : J'ai besoin de plusieurs informations.
Agent : Quelle taille souhaitez-vous ?
  1. La route d'intent order.new dans le flux de démarrage par défaut est évaluée.
  2. L'intent order.new est mis en correspondance et le paramètre d'intent couleur est défini sur "bleu".
  3. La session passe à la page Nouvelle commande, et le paramètre d'intent couleur devient un paramètre de session.
  4. La page Nouvelle commande comporte une entrée de commande ("OK, allons-y…"). Cet élément est ajouté à la file d'attente de réponses.
  5. Le paramètre de session couleur permet de renseigner le paramètre de formulaire portant le même nom.
  6. La route de condition réelle de la page Nouvelle commande est évaluée et appelée. Elle contient un message de réponse ("J'ai besoin…"). Cet élément est ajouté à la file d'attente de réponses.
  7. Le formulaire de la page n'étant pas rempli, l'agent utilise l'invite concernant la taille ("Quelle taille…") et l'ajoute à la file d'attente de réponses.
  8. L'agent envoie la file d'attente de réponses à l'utilisateur final.
Utilisateur final : grand
Agent : vous avez sélectionné un t-shirt grand et bleu.
Agent : vous pouvez récupérer votre commande de t-shirt bleu et grand dans un délai de 7 à 10 jours ouvrés. Au revoir.
  1. L'entrée de l'utilisateur final remplit le paramètre taille demandé par l'agent lors du tour de conversation précédent.
  2. La route de remplissage du formulaire de la page Nouvelle commande est évaluée et appelée. Il comporte un fulfillment ("Vous avez sélectionné…"), qui est ajouté à la file d'attente de réponses avec ses références de paramètre résolues aux valeurs réelles fournies par l'utilisateur final.
  3. La session passe à la page Confirmation de la commande.
  4. La page Confirmation de la commande dispose d'un fulfillment d'entrée ("Vous pouvez retirer…", qui est ajouté à la file d'attente de réponse.
  5. L'agent envoie la file d'attente de réponses à l'utilisateur final.
  6. La session passe à Terminer la session.

Passage en production

Avant d'exécuter votre agent en production, veillez à mettre en œuvre les bonnes pratiques pour le passage en production.