Conception de l'agent

Cette page indique comment concevoir des agents de haute qualité qui répondent à vos objectifs stratégiques.

Avant de créer un agent

Cette section fournit les points à prendre en compte avant de commencer à créer un agent.

Objectif

Considérez l'objectif général de votre agent :

  • Quelle est la finalité recherchée par votre entreprise ?
  • Quelles seront les attentes des utilisateurs vis-à-vis de l'agent ?
  • À quelle fréquence les utilisateurs interagiront-ils avec l'agent ?

Plate-forme

Déterminez la façon dont les utilisateurs accéderont à votre agent. Consultez la liste des plates-formes compatibles avec Dialogflow avant de créer du contenu. Lorsque vous aurez décidé quelles plates-formes utiliser, préparez le contenu en conséquence. Certaines intégrations de plate-forme Dialogflow acceptent des messages enrichis pouvant inclure des éléments tels que des images, des liens et des suggestions.

Créer des agents de manière itérative

Si vous souhaitez concevoir un agent complexe ou de grande taille, commencez par créer une boîte de dialogue qui ne traite que les requêtes de niveau supérieur. Une fois la structure de base établie, perfectionnez le fil de la conversation pour vous assurer que toutes les voies qu'un utilisateur pourrait emprunter sont envisagées.

Agents prédéfinis

Dialogflow propose des agents préconçus pour vous aider à démarrer. Les agents prédéfinis couvrent les cas d'utilisation courants tels que la réservation d'hôtel, la navigation et les achats en ligne. Ces agents sont fournis avec des intents et des entités couvrant les requêtes utilisateur les plus répandues. Ajoutez des réponses spécifiques à votre entreprise et vous disposerez rapidement d'un agent opérationnel.

Entités système

Lorsqu'un utilisateur effectue une requête, certaines informations clés doivent être analysées. Dans Dialogflow, ces informations sont appelées entités. Plus spécifiquement, les entités système sont des entités prédéfinies fournies par Dialogflow qui traitent les types d'informations les plus courants.

Small Talk

Lors du développement de la boîte de dialogue, vous avez peut-être envisagé de traiter les requêtes hors sujet. Dialogflow propose une fonctionnalité facultative appelée Small Talk. Lorsque cette fonctionnalité est activée, l'agent répond aux conversations générales, aux réponses émotionnelles et aux questions sur l'agent lui-même. Toutes les réponses Small Talk peuvent être personnalisées pour que l'expérience, qu'elle soit occasionnelle, professionnelle ou hybride, soit représentative de votre marque.

Bonnes pratiques relatives à la conception d'un agent

Cette section décrit la liste des bonnes pratiques à suivre pour obtenir un agent robuste, précis, performant et facile d'utilisation.

Messages d'accueil et d'au revoir

Bonnes pratiques Détails
Les intents d'accueil doivent informer les utilisateurs des capacités de l'agent en tenant compte de la marque. L'intent d'accueil de l'agent doit présenter à l'utilisateur 2 ou 3 tâches pouvant être effectuées par l'agent, ainsi que de brèves descriptions (le cas échéant) de la manière d'utiliser ces fonctionnalités.
Les agents doivent afficher un message de sortie approprié à la fin d'une interaction. Lorsqu'un utilisateur termine une tâche dans l'agent, ce dernier doit résumer la transaction/tâche et dire quelque chose comme "À bientôt", etc.

Machine learning et entraînement

Bonnes pratiques Détails
Les intents doivent comporter au moins 10 à 20 expressions d'entraînement (en fonction de la complexité de l'intent). La complexité de l'agent détermine le nombre réel d'expressions d'entraînement que chaque intent doit contenir, mais 10 à 20 expressions (en fonction de la complexité de l'intent) constituent le minimum. Plus vous avez de paramètres dans les intents, plus vous devez fournir d'expressions pour entraîner le modèle de machine learning.
Les expressions d'entraînement doivent être variées. Incluez des variantes de questions, de commandes, de verbes et de synonymes pour les noms communs afin de vous assurer que les expressions couvrent un large éventail de requêtes possibles.
Les annotations doivent être cohérentes.
  • Passez en revue les expressions d'entraînement et assurez-vous que les annotations en surbrillance pointent vers les bonnes entités.
  • Les expressions d'entraînement ne doivent pas comporter du texte annoté dans certains cas et pas dans d'autres.
  • La plage de texte sélectionnée pour une annotation ne doit inclure que le texte nécessaire pour faire correspondre une entité.
  • Assurez-vous que le texte annoté dans plusieurs expressions d'entraînement contient des parties semblables de l'expression d'entraînement. Imaginons par exemple que vous disposiez de l'expression d'entraînement "Définir l'alarme à 6h", où "6h" est annoté avec @sys.date. Si vous avez une expression d'entraînement similaire, par exemple "Réveille-moi à 7h", annotez "7h", et non "moi à 7h".
Les entités personnalisées doivent couvrir un large éventail d'exemples. Les entités sont des listes d'éléments. Le machine learning prend en charge les formes grammaticales, mais vous devez inclure tous les éléments possibles. Vérifiez également l'option de définition des synonymes et incluez quelques variantes.
Activez le ML pour un maximum d'intents. Les expressions d'entraînement pour lesquelles le ML est désactivé ne sont pas utilisées lors de l'entraînement de votre agent. Lorsqu'une requête utilisateur est très semblable à une expression d'entraînement d'un intent pour lequel le ML est désactivé, elle peut être associée au mauvais intent si d'autres intents avec le ML désactivé ressemblent légèrement à la requête utilisateur. Si vous rencontrez des problèmes de faux positifs, augmentez le seuil de classification du ML plutôt que de désactiver le ML.
Ne définissez pas un seuil de classification du ML élevé pour un agent ne disposant que de peu de données d'entraînement. Si le seuil est élevé et que vous disposez de peu de données d'entraînement, seules les requêtes utilisateur correspondant presque exactement aux expressions d'entraînement donneront lieu à une correspondance d'intent. Vous devez fournir une grande quantité de données d'entraînement si vous souhaitez utiliser un seuil élevé.
Les agents doivent disposer d'un intent de remplacement. Sans intent de remplacement, les requêtes utilisateur sans correspondance génèrent des réponses vides.
Les agents doivent fournir des exemples négatifs. Les exemples négatifs empêchent les correspondances involontaires entre les intents et les requêtes utilisateur ressemblant légèrement aux expressions d'entraînement.
Ne définissez pas d'entités pouvant correspondre à pratiquement n'importe quoi. Cela dégrade les performances et la qualité du ML. Chaque terme ou presque de chaque expression d'entraînement sera évalué comme une correspondance possible. Utilisez plutôt @sys.any. De même, les entités composites ne doivent pas contenir @sys.any comme synonyme.
Ne définissez pas d'entités composées d'expressions de remplissage ou de texte dénué de sens. Exemples d'expressions de remplissage et de texte dénué de sens : "hummm", "voyons voir", "s'il vous plaît", "pourriez-vous", etc. Lorsque vous essayez d'utiliser ce genre d'entités pour apporter de la variété, vous ne faites que dégrader les performances du ML. Dialogflow étend déjà les données afin de gérer une telle variété. Ajoutez plutôt ce type d'expressions à vos expressions d'entraînement, et non à vos entités.
Les entités doivent avoir une portée limitée qui capture les différentes valeurs possibles d'un type d'information. Veillez à ce que vos entités soient ciblées, simples et concises. Si les valeurs de votre entité sont complexes, cela peut être dû au fait que des expressions d'entraînement de l'intent sont mieux adaptées à votre situation. Considérons par exemple des expressions utilisateur telles que "Comment puis-je passer un appel international avec le forfait A ?" ou "Utiliser l'itinérance des données à l'international avec le forfait B". Évitez de créer des entités à la fois pour les actions ("Comment puis-je passer un appel international" et "Utiliser l'itinérance des données à l'international") et pour les forfaits ("Forfait A", "Forfait B"). Utilisez plutôt d'un côté des expressions d'entraînement et des correspondances d'intent pour capturer les actions, et de l'autre, des entités pour capturer les forfaits.
Le texte annoté dans les expressions d'entraînement doit être varié. Par exemple, si vous fournissez dans les expressions d'entraînement des valeurs temporelles devant être analysées comme des entités système @sys.time, ne renseignez pas la même heure dans chacune de ces expressions. Vos expressions d'entraînement doivent comporter des exemples variés, tels que "7h", "20h00", "21 heures".
Les intents comportant de multiples paramètres doivent également contenir un grand nombre d'expressions d'entraînement. En règle générale, essayez d'avoir au moins trois fois plus d'expressions d'entraînement que de paramètres et un minimum de 10 à 20 expressions d'entraînement.
Utilisez chaque paramètre dans plusieurs expressions d'entraînement. En règle générale, chaque paramètre doit être utilisé dans au moins cinq expressions d'entraînement.
Évitez d'utiliser plusieurs entités @sys.any au sein d'une expression d'entraînement. Une expression d'entraînement ne doit pas contenir deux entités @sys.any consécutives, ni un total de trois entités @sys.any. Dialogflow pourrait ne pas être en mesure de les distinguer.
N'utilisez pas d'expressions d'entraînement semblables dans des intents distincts. Des intents distincts ne doivent pas contenir d'expressions d'entraînement semblables, car cela empêcherait Dialogflow d'apprendre à reconnaître ces expressions.
Activez la correction orthographique automatique. Si vous utilisez la saisie de texte, activez la correction orthographique automatique.
N'imbriquez pas d'entités composites. N'utilisez pas plus d'un niveau d'imbrication dans les entités composites. Chaque niveau d'imbrication dégrade considérablement la qualité.
Évitez les caractères spéciaux dans les expressions d'entraînement. Dans les expressions d'entraînement, les caractères spéciaux tels que {, _, # ou [ sont ignorés. Les emoji constituent toutefois une exception et fonctionnent comme prévu.

Fonctionnalités d'intent utiles

Bonnes pratiques Détails
Les agents doivent accepter les requêtes contextuelles. Par exemple, si l'agent traite des requêtes relatives à la météo et qu'un utilisateur demande "Météo à San Francisco", veillez à ajouter des contextes pour accepter d'autres requêtes telles que "Et demain ?
Les agents doivent contenir des suivis pour "oui", "non", "annuler", "suivant", "retour", etc. Les intents de suivi sont utilisés pour répondre aux réponses courantes. Pour ajouter un intent de suivi, passez la souris sur un intent et cliquez sur Ajouter un suivi.
Les intents doivent disposer d'au moins une réponse textuelle. La section Réponse se trouve au bas de la page de l'intent. Lorsque vous ajoutez des variations, la réponse est choisie de façon aléatoire parmi les différentes variantes possibles, ce qui offre une expérience moins répétitive.
Les agents doivent recueillir toutes les informations nécessaires pour répondre à la requête d'un utilisateur. Envisagez de définir les informations nécessaires en tant que paramètres requis. L'agent continuera de questionner l'utilisateur tant qu'il n'aura pas obtenu toutes les informations dont il a besoin. Ce processus s'appelle le remplissage de cases.
Les réponses doivent répéter les informations nécessaires (par exemple pour confirmer une commande). Lorsqu'un utilisateur effectue une requête, comme passer une commande ou modifier des informations, l'agent doit en répéter les termes à des fins de confirmation. Lors de la création des réponses de confirmation, veillez à inclure toutes les combinaisons possibles d'entités et de paramètres répétés.

Réparation de la conversation

Bonnes pratiques Détails
Les agents doivent disposer d'invites de récupération utiles pour chaque étape de la boîte de dialogue. Supposons par exemple que l'invite initiale soit "Quelle couleur voulez-vous ?" et que l'utilisateur réponde "perroquet de la jungle". Un intent de remplacement/suivi devrait, par exemple, reformuler la question comme suit : "Pardon, de quelle couleur s'agit-il ?
Les agents doivent disposer de réponses personnalisées et spécifiques à la marque dans l'intent de remplacement par défaut. Lorsqu'un utilisateur dit quelque chose qui ne correspond pas à un intent, l'intent de remplacement par défaut est mis en correspondance. Il doit être personnalisé pour refléter votre marque, et pour fournir des informations permettant à l'utilisateur d'effectuer une requête valide.
Pour un fulfillment personnalisé, les agents doivent disposer d'un intent permettant aux utilisateurs de répéter des informations. Un intent peut gérer des requêtes, telles que "pourriez-vous répéter", "veuillez répéter", "recommencez", etc. Il peut s'agir d'un intent de suivi.

Personnalité

Bonnes pratiques Détails
Les réponses de l'agent doivent avoir un style et un ton qui correspondent à votre marque et être cohérentes dans tout l'agent. Lorsque les utilisateurs s'entretiennent avec l'agent, ils doivent avoir l'impression de parler à une seule personne. Assurez-vous que les qualités et la personnalité choisies sont représentées dans toutes les réponses.
Les agents doivent tenir compte de facteurs tels que la culture, le sexe, les croyances religieuses, les capacités et l'âge. Les stéréotypes, même dans les plaisanteries, peuvent offenser les utilisateurs, qui peuvent alors décider de ne pas revenir consulter l'agent.

Test

Bonnes pratiques Détails
Testez soigneusement votre application sur une personne qui n'a pas été impliquée dans son développement. Tester l'application sur une personne qui n'a jamais eu affaire à l'agent vous donnera des indications sur le degré de fluidité de la conversation. Demandez-lui d'évaluer des facteurs comme la précision des énoncés, la longueur des pauses, les ruptures dans le fil de la conversation, le rythme, les transitions maladroites, etc.
Testez votre application sur l'ensemble des plates-formes que vous prévoyez d'utiliser. Si l'agent est disponible sur plusieurs plates-formes, assurez-vous que les messages et réponses enrichis s'affichent correctement sur chacune d'entre elles.

Guides de conception de conversation supplémentaires

Consultez le guide de conception de conversation fourni par l'équipe Actions on Google.