Créer et personnaliser un agent

Dans Dialogflow, un agent nouvellement créé contient deux intents par défaut : l'intent d'accueil par défaut et l'intent de remplacement par défaut. Les premières étapes de la compilation d'un agent, en plus de la création de nouveaux intents, consistent à personnaliser ces derniers selon le but et la personnalité de l'agent.

Avant de commencer

Avant d'essayer ce tutoriel, vous devez vous familiariser avec les bases de Dialogflow décrites dans les Guides de démarrage rapide.

Créer un agent

Utilisez la console Dialogflow ES pour créer un agent nommé "MarysBikeShop". Si vous ne savez pas comment procéder, consultez à nouveau les Guides de démarrage rapide.

Personnaliser l'intent d'accueil par défaut

Commençons par personnaliser la réponse de l'intent d'accueil par défaut en fonction des bonnes pratiques en matière de conception des conversations Google. La bonne pratique préconise que votre message d'accueil remplisse trois objectifs principaux : accueillir l'utilisateur, identifier ses attentes et lui permettre de prendre le contrôle.

Sur la base de cette bonne pratique, nous pouvons composer le message d'accueil de l'agent :

Bienvenue. Je peux vous donner les heures d'ouverture du magasin ou vous fixer un rendez-vous. Que préférez-vous ?

Pour modifier la réponse de l'intent d'accueil par défaut, procédez comme suit :

  1. Cliquez sur l'intent d'accueil par défaut.
  2. Accédez à la section Responses (Réponses).
  3. Dans le tableau Text response (Réponse textuelle), supprimez toutes les réponses par défaut.
  4. Dans le tableau Text response (Réponse textuelle), copiez et collez la réponse suivante :

    Welcome. I can tell you the shop hours, or I can set up an appointment. Which would you like?

  5. Cliquez sur ENREGISTRER.

  6. Testez la modification à l'aide du simulateur dans la console Dialogflow.

    Figure 2. Organigramme illustrant l'intent d'accueil avec l'énoncé et la réponse correspondants.

Créer des variantes de réponse

Après avoir rédigé une nouvelle expression de bienvenue, nous devons créer d'autres variantes. Incluez les variations suivantes en tant que réponses dans l'intent d'accueil par défaut :

  • Welcome. I can tell you the shop hours, or I can make an appointment. What can I do for you?
  • Hello there. I can tell you the shop hours, or I can schedule an appointment. How may I help you today?

Lorsque nous fournissons plusieurs réponses à un intent, Dialogflow sélectionne une variante de réponse de manière aléatoire dans la liste. Cependant, gardez à l'esprit qu'il existe des moyens plus sophistiqués de gérer les variations dans les réponses, dès lors que du code est écrit pour le composant fulfillment, ce qui permet d'utiliser une logique complexe. Le composant fulfillment de Dialogflow est traité dans les sections suivantes.

Dans nos variantes de réponse, les expressions de bienvenue se terminent par une question, comme Which would you like? (Que préférez-vous ?) et What can I do for you? (Que puis-je faire pour vous ?). À ce stade, l'agent attend un énoncé de la part de l'utilisateur, qui doit révéler les attentes de ce dernier. Dans la section suivante, nous créons le premier intent personnalisé de l'agent, capable d'identifier et de résoudre la requête d'un utilisateur.

Créer un intent personnalisé

Nous voulons que l'agent du magasin de vélo effectue deux tâches :

  • Informer les clients des horaires d'ouverture
  • Planifier des rendez-vous pour les clients

Commençons par créer un intent qui informe les utilisateurs des horaires d'ouverture du magasin de vélo. Nous pouvons écrire un exemple de dialogue pour cet intent :

      Utilisateur : When are you open? (Quand êtes-vous ouverts ?)

      Agent : Nous sommes ouverts de 9h à 18h tous les jours. Is there anything else I can do for you?

Pour créer un intent pouvant gérer ce dialogue, procédez comme suit :

  1. Créez un intent nommé Hours.
  2. Dans la section Training phrases (Expressions d'entraînement) de l'intent Hours (Horaires), entrez l'expression d'entraînement suivante : When are you open?
  3. Dans la section Responses (Réponses), entrez la réponse suivante dans le tableau Text response (Réponse textuelle) : We're open from 9 AM to 6 PM every day. Is there anything else I can do for you?
  4. Cliquez sur ENREGISTRER.

    Figure 3. Organigramme illustrant l'intent d'accueil par défaut et le nouvel intent personnalisé, Hours (Horaires).

La configuration ci-dessus nous donne un intent de base qui fonctionne. Lorsqu'un utilisateur pose la question When are you open? (Quand êtes-vous ouverts ?), Dialogflow met l'énoncé de l'utilisateur en correspondance avec l'intent personnalisé Hours. Ensuite, l'intent répond par la phrase "Nous sommes ouverts de 9h à 18h tous les jours. Y a-t-il autre chose que je puisse faire pour vous ?".

Ajouter des expressions d'entraînement

Étant donné que l'intent Hours (Horaires) ne contient actuellement qu'une seule expression d'entraînement, When are you open? (Quand êtes-vous ouverts ?), il n'a pas suffisamment de connaissances pour identifier d'autres énoncés similaires ayant le même sens. Nous devons fournir plus d'expressions d'entraînement afin que l'agent puisse faire correspondre une variété d'énoncés d'utilisateur exprimant la même intention.

En langage naturel, nous pouvons presque toujours trouver différentes façons de former des expressions qui signifient la même chose. Nous recommandons que chaque intent commence par au moins 10 à 20 expressions (en fonction de la complexité de l'intent). Lorsque vous commencez à tester l'agent, continuez à ajouter d'autres phrases d'entraînement à l'aide de l'outil d'entraînement de Dialogflow.

Pour l'expression When are you open ? (Quand êtes-vous ouverts ?), voici les 10 variations que les utilisateurs peuvent utiliser :

  • Are you open today?
  • How late are you open on weekends?
  • When do you close?
  • What time do you open tomorrow morning?
  • Are you open now?
  • Business hours.
  • How early can I drop in?
  • Tell me your opening hours.
  • What are your hours?
  • How late can I come in?

Pour ajouter ces variantes en tant qu'expressions d'entraînement, procédez comme suit :

  1. Cliquez sur l'intent Hours (Horaires).
  2. Dans la section Training phrases (Expressions d'entraînement), copiez et collez chacune des expressions citées ci-dessus.
  3. Cliquez sur ENREGISTRER.
  4. Testez l'intent avec différents énoncés de l'utilisateur à l'aide du simulateur de la console Dialogflow.

Jusqu'à présent, nous disposions d'un agent capable de saluer et d'accueillir les utilisateurs, d'identifier une requête spécifique et de la résoudre. Cependant, que se passe-t-il lorsque les énoncés des utilisateurs ne sont pas compréhensibles par l'agent ?

Dans la section suivante, nous découvrirons un intent spécial conçu pour gérer des énoncés sans correspondance : un intent de remplacement.

Personnaliser l'intent de remplacement

Un intent de remplacement est un intent spécial mis en correspondance lorsque l'énoncé d'un utilisateur ne correspond à aucun autre intent. Comme l'intent d'accueil par défaut, un intent de remplacement générique appelé intent de remplacement par défaut est inclus dans chaque agent.

Un intent de remplacement peut inviter les utilisateurs à formuler des énoncés dans un format compréhensible par l'agent. Pour modifier la réponse "Intent de remplacement par défaut", procédez comme suit :

  1. Cliquez sur l'intent de remplacement par défaut.
  2. Accédez à la section Responses (Réponses).
  3. Dans le tableau Text response (Réponse textuelle), supprimez toutes les réponses par défaut.
  4. Dans le tableau Text response (Réponse textuelle), copiez et collez la réponse suivante :

    Sorry, did you want to hear our hours, or set up an appointment?

  5. Cliquez sur ENREGISTRER.

    Figure 4. Organigramme illustrant l'intent de remplacement en haut à gauche.

La question directe dans la réponse de remplacement : Did you want to hear our hours, or set up an appointment? (Souhaitez-vous connaître nos horaires d'ouverture ou prendre rendez-vous ?) incite les utilisateurs à fournir un énoncé reconnaissable. L'agent s'attend à ce que l'utilisateur formule l'un des énoncés suivants : I want to know the hours (Je souhaite connaître les horaires) ou I want to set up an appointment (Je souhaite prendre rendez-vous).

À ce stade, l'agent n'a pas d'intent capable de gérer l'énoncé I'd like to set up an appointment (Je souhaiterais prendre rendez-vous). Dans la section suivante, nous allons créer un intent avancé capable de résoudre la requête pour prendre rendez-vous.