Conception de conversations
Voici quelques bonnes pratiques de haut niveau pour la conception de conversations dans les assistants numériques.
Les utilisateurs attendent implicitement des applications logicielles qu'elles possèdent des qualités humaines. Une application est souvent considérée comme "conviviale" lorsqu'elle présente des qualités humaines telles que la courtoisie et le bon sens.
Avec les interfaces conversationnelles (assistants numériques), les attentes sont encore plus élevées. Les assistants numériques étant conçus autour du concept de conversation humaine, il est particulièrement important de bien les concevoir afin qu'ils répondent aux attentes des utilisateurs, qu'elles soient conscientes ou inconscientes.
La conception conversationnelle supprime les aspects techniques du modèle d'interaction d'une tâche ou d'un processus sous-jacent et la remplace par une conversation à son naturel que les utilisateurs trouvent facile à comprendre et engageante.
Un bon design de conversation vise à l'efficacité, a une compréhension du contexte, reflète le dos à l'utilisateur, est émotionnellement engageant et construit de grands dialogues. En tant qu'ingénieur, vous pourriez penser qu'un bon design de conversation est facile à réaliser, mais gardez à l'esprit que tous les grands chanteurs ne savent pas écrire de bonnes paroles. Et tous les auteurs de bonnes paroles ne peuvent pas chanter.
Votre assistant numérique n'est pas humain, mais s'il s'appuie sur des techniques et signaux conversationnels, et fait preuve de respect comme un humain, il peut rendre les conversations plus naturelles (et plus agréables) et minimiser le potentiel de frustration des utilisateurs. Un assistant numérique possédant ces qualités peut faire comprendre à l'utilisateur qu'il est capable de répondre à ses véritables préoccupations.
Voici quelques techniques conversationnelles qui peuvent contribuer à rendre votre assistant numérique plus engageant pour les utilisateurs.
Utilisateurs Orient
Une partie essentielle de la conception d'un assistant numérique consiste à s'assurer que les utilisateurs peuvent facilement découvrir comment l'utiliser efficacement.
Bienvenue
Pour partir du bon pied avec vos utilisateurs, réfléchissez à la manière dont l'assistant numérique va les saluer. Voici quelques conseils :
- Présentez l'assistant numérique de manière positive et accueillante.
- Indiquez ce que l'assistant numérique peut faire et/ou ce qu'il attend de l'utilisateur comme prochaine étape.
- Variez les salutations, en particulier pour les assistants numériques utilisés de façon répétée.
Les assistants numériques proposent une implémentation de bienvenue par défaut, mais vous pouvez également fournir votre propre implémentation.
Aide
La plus grande mission d'un assistant numérique consiste à indiquer aux utilisateurs ce qu'il peut faire et à les aider à avancer si la conversation ne se déroule pas comme prévu. Voici quelques conseils :
- Assurez-vous que l'assistant numérique peut gérer une demande d'aide à tout moment de la conversation, qu'il s'agisse d'une demande explicite ou plus subtile telle que "Que pouvez-vous faire ?".
- Comme pour l'accueil des utilisateurs, indiquez ce que l'assistant numérique peut faire et/ou ce qu'il attend de l'utilisateur comme prochaine étape.
Les assistants numériques proposent une implémentation d'aide par défaut, mais vous pouvez concevoir votre propre expérience.
Possibilité de quitter la conversation
Le fait de forcer un utilisateur à terminer un fil de conversation qu'il a lancé par erreur entraîne une mauvaise expérience. Lorsqu'un utilisateur participe à une conversation, il doit toujours disposer d'un moyen de la quitter, que ce soit parce que la conversation prend un tour déplaisant ou parce qu'il ne souhaite simplement pas la poursuivre à ce moment-là.
Plusieurs moyens sont à votre disposition. Par exemple, vous pouvez vous assurer que toutes les listes de choix incluent une option permettant de quitter la conversation en cours. Vous pouvez également utiliser l'intention de sortie intégrée de l'assistant numérique pour gérer explicitement toutes les demandes spécifiques de fin de la conversation en cours.
Conseils et indices
Selon la complexité de vos briques et de votre assistant numérique, il peut être utile que vous fournissiez différentes formes de guidage et de signaux visuels pour suggérer aux utilisateurs ce qu'ils peuvent faire. Ces repères peuvent prendre les formes suivantes :
- Conseils dans les messages (comme "... ou quittez simplement cette conversation si vous ne voulez pas poursuivre").
- Informations indiquant à l'utilisateur ce qu'il peut se passer après qu'il a terminé une action.
- Boutons des actions les plus courantes.
- Rappels réguliers tout au long de la conversation, expliquant comment afficher un menu, quitter une conversation, demander de l'aide ou parler à un agent, par exemple.
Sur certains canaux, vous pouvez également tirer parti des fonctionnalités propres à la plate-forme de messagerie afin de fournir des boutons pour les actions courantes telles que la sortie et l'affichage du menu.
Afficher les réponses rapides en tant que boutons d'action
Lorsque vous invitez les utilisateurs à fournir des informations, vous pouvez anticiper le choix de l'utilisateur en fonction de ce que les utilisateurs sélectionnent généralement.
Par exemple, si vous demandez une date pour une entrée de calendrier, les options courantes sont "aujourd'hui" ou "demain". Ainsi, sous l'invite, vous pouvez ajouter deux boutons indiquant Aujourd'hui et Demain. Lorsqu'un utilisateur sélectionne l'un des deux boutons ou saisit le libellé de l'un d'eux, la date du jour ou la date du lendemain est définie sur la variable sous-jacente.
Un autre exemple est le cas où le bot a besoin d'une adresse de transmission. S'il y a une adresse personnelle dans le dossier, vous pouvez demander une adresse de livraison et également inclure un bouton de livraison à domicile.
Lorsque vous utilisez des réponses rapides, assurez-vous que les utilisateurs comprennent que les boutons ne sont pas leur seul choix et que le bouton peut être déclenché par un message. Rappelez-vous toujours que la conversation signifie également la parole et que les utilisateurs qui utilisent le chatbot en utilisant leur voix n'auront pas la possibilité d'appuyer sur un bouton. Très probablement, ils mentionneront le libellé du bouton.
Garantir une compréhension mutuelle
Pour que les conversations se déroulent correctement, vous devez vous assurer que l'assistant numérique comprend les utilisateurs et que l'utilisateur comprend l'assistant numérique. Voici quelques techniques qui y contribuent.
Utiliser une langue ordinaire
Aucun utilisateur ne parle de la façon dont votre base de données produit a été conçue. Assurez-vous que votre bot utilise la langue de votre public cible pour laquelle le persona que vous avez défini devrait vous guider. Par exemple :
-
"compte utilisateur" au lieu de "ID utilisateur"
-
"où puis-je livrer" au lieu de "adresse d'expédition"
-
"J'ai fait de mon mieux mais je n'ai pas pu trouver ce que vous cherchiez" au lieu de "la requête n'a pas renvoyé de résultat"
En outre, vous pouvez rendre les messages moins robotisés en fournissant du contexte et des conseils.
Donc, au lieu de "Quel est votre ID de commande ?", vous pourriez fournir un message plus utile comme "Je peux vous aider à trouver votre commande. Si vous pouvez me dire votre numéro de commande, ce serait génial. Sinon, pas de problème. Je peux aussi rechercher par produit ou par date."
Ne vous attendez pas à ce que les utilisateurs connaissent les mots magiques
Imaginez un bot de vente que les commerciaux pourraient utiliser pour demander une représentation graphique du chiffre d'affaires qu'ils ont généré et de la façon dont ce chiffre d'affaires a atteint leurs objectifs prévus.
Les graphiques peuvent être réalisés avec de nombreuses fonctions, y compris le type de graphique à ajouter, l'ajout ou non de libellés, le nombre d'axes Y à afficher. Un assistant numérique dans lequel le commercial doit demander ses statistiques en disant des choses comme "Montrez-moi mes ventes pour Q2 / 2021 sous forme de graphique à secteurs avec no_label double_y_axis dans linear_plot" ne fonctionnera pas dans la pratique.
Rendre les options claires, les garder conversationnelles et utiliser la langue de votre public cible. Si vous proposez des entonnoirs, des diagrammes de Gantt, des nuages de points, des graphiques à bulles et des graphiques Pareto, conservez ces informations pour vous et présentez-les différemment à l'utilisateur. Voici quelques exemples de ce qu'un utilisateur de ce bot serait plus susceptible de demander :
-
"Montrez-moi un aperçu de mes ventes pour Q2 / 2021"
-
"Montrez-moi mes ventes pour Q2 / 2021 par rapport à l'année dernière"
Pour les deux requêtes, la réponse peut être affichée avec différents types de graphiques sans que l'utilisateur ait à comprendre les mots magiques qui lui donnent ce qu'il veut. Non seulement cela rend votre assistant numérique intuitif à utiliser, mais cela réduit également le choix, ce qui est une bonne chose en gardant à l'esprit que les tâches conversationnelles doivent être courtes, comme nous le verrons dans la section suivante.
Donner des commentaires dans la conversation
Assurez-vous que votre bot n'est pas conçu comme un jeu d'évasion et que vous fournissez suffisamment de pointeurs, de commentaires, de confirmation, de signalisation et d'aide pour que les utilisateurs comprennent toujours ce qui est attendu d'eux maintenant, ce qui est à venir et comment se débrouiller. Voici quelques exemples de ces techniques :
-
Confirmation : " OK. J'ai reçu votre commande."
-
Signalisation : " OK. J'ai reçu votre commande. Ensuite, je dois savoir où envoyer cela."
-
Invite : "OK. J'ai reçu votre commande. Ensuite, je dois savoir où l'envoyer. Alors, laissez-moi savoir l'adresse à laquelle je devrais la livrer."
-
Aide : " OK. J'ai reçu votre commande. Ensuite, je dois savoir où l'envoyer. Donc, laissez-moi savoir l'adresse à laquelle je dois la livrer ou utilisez le bouton ci-dessous pour l'expédier à votre adresse personnelle.
Il peut y avoir des situations dans lesquelles l'utilisateur ne sait pas quelles informations fournir ou a peut-être même perdu l'intérêt d'effectuer une tâche. Une façon d'aider dans ces cas est d'afficher des contrôles supplémentaires (comme des boutons) pour que l'utilisateur annule une tâche ou passe à un état d'aide. De plus, en utilisant le paramètre maxPrompts
sur les composants d'entrée, vous pouvez même automatiser la navigation vers un état d'aide lorsque l'utilisateur fournit des informations incorrectes plusieurs fois.
Supprimer l'entrée utilisateur
N'ayez pas peur de faire en sorte que la brique vérifie sa compréhension de la saisie utilisateur. Une tournure peut être ambiguë, même en personne.
Par exemple, si nous sommes jeudi et qu'un utilisateur dit "Je veux prendre rendez-vous pour samedi prochain", cela peut être interprété comme dans deux jours ou dans neuf jours. Dans ce cas, il est intéressant que la brique vérifie la date en disant, par exemple, "OK, pour m'assurer que j'ai bien compris, s'agit-il de samedi 10 ou de samedi 17 ?".
Dans les flux de dialogue, nous vous recommandons d'utiliser des entités comme types de variable lors de la collecte des entrées utilisateur. L'utilisation d'entités en tant que types de variable valide les entrées utilisateur et détecte automatiquement toute ambiguïté, ce qui signifie que tout ce que vous devez faire est de trouver le bon libellé lorsque vous invitez des utilisateurs.
Fournir des invites alternatives
Comme mentionné précédemment, il est important d'écrire des messages dans un style conversationnel. Mais que se passe-t-il si ce message doit être répété parce que l'utilisateur n'a pas répondu correctement ? Par exemple :
"Cool. Alors, dites-moi où expédier ça."
"Cool. Alors, dites-moi où expédier ça."
"Cool. Alors, dites-moi où expédier ça."
Même les messages qui sont écrits de manière conversationnelle sonneront robotique et sans intérêt s'ils sont répétés. Par conséquent, vous devez écrire plusieurs versions de chaque invite afin qu'un utilisateur puisse voir un texte différent s'il est réinvité (ou s'il répète la conversation).
Vous pouvez utiliser plusieurs invites définies sur des entités pour afficher automatiquement des invites alternées. Par conséquent, si les informations utilisateur sont validées par une variable de type d'entité, vous pouvez utiliser la propriété d'invite de l'entité pour définir autant d'invites que vous le souhaitez. En utilisant le composant Resolve Entities, vous n'avez qu'à lui associer la variable.
Divulguer progressivement des informations supplémentaires
Avoir des invites alternées est génial. Mais si un utilisateur ne comprend pas, la reformulation ne le rendra que légèrement meilleur. Ici, vous voulez divulguer progressivement plus d'informations ou escalader si nécessaire.
- Bot : "Cool. Alors, dites-moi où expédier ça."
- Utilisateur : "à moi"
- Bot : "Je suis désolé, mais 'pour moi' ne semble pas fonctionner pour moi. Si vous pouvez me donner un nom de rue, un numéro de maison et un nom de ville, alors je peux vous l'envoyer.
- Utilisateur : "envoie-le-moi"
- Bot : "Essayé, cela n'a pas fonctionné pour moi non plus. J'aimerais vraiment vous aider ici. Peut-être que vous voulez parler à un collègue humain. Si oui, demandez-moi simplement de vous connecter à un agent humain. Ou bien tu me donnes une adresse à laquelle je peux envoyer ça."
Dans cet ensemble d'invites, notez comment les messages révèlent progressivement plus d'informations pour aider l'utilisateur. L'utilisation d'entités pour définir les invites facilite l'implémentation d'une telle conversation. Ajoutez simplement un numéro de séquence aux invites.
Le numéro de séquence d'une invite indique quand elle s'affiche. L'exemple ci-dessus contient des messages dont les numéros de séquence sont compris entre 1 et 3. Si vous configurez ensuite la propriété maxPrompts
du composant Résoudre les entités sur 3
, une troisième tentative d'entrée utilisateur ayant échoué déclenche la navigation vers, par exemple, une aide ou un état d'agent humain.
Les invites avec le même numéro de séquence présentent un comportement alternatif, comme décrit dans la section précédente. De cette façon, vous pouvez obtenir les deux, en exposant progressivement des informations supplémentaires et en affichant des invites alternées.
Réponses variées et divulgation progressive
Définissez plusieurs réponses sur différents points de conversation. Des réponses variées renforcent la crédibilité de la brique pour l'utilisateur (elle ne semble pas enfermée dans une boucle). Vous pouvez également y recourir pour divulguer progressivement plus d'informations afin d'aider l'utilisateur à avancer.
Par exemple, si l'utilisateur saisit une entrée non valide en réponse à la question "Quelle taille voulez-vous ?", vous pouvez suivre cette invite d'une phrase telle que "OK, essayons ensemble de trouver la taille qui vous convient. Sélectionnez S, M ou L."
Confirmation et écoute réflective
Les réponses de votre brique doivent refléter une écoute réflective (reformulation de la saisie utilisateur) pour démontrer que la brique comprend les demandes utilisateur avant de passer à l'étape suivante. Par exemple, si l'utilisateur écrit "Je veux commander une pizza", la brique peut répondre "OK, lançons votre commande de pizza" avant de passer à la question suivante (par exemple, "Quelle taille de pizza voulez-vous ?"). La compréhension de la brique peut aussi être exprimée implicitement et sur un ton humain naturel ("Lançons votre commande de pizza") par opposition à une formulation plus littérale et moins naturelle (telle que "Demande de commande de pizza confirmée").
Tenez également compte de la situation dans laquelle l'utilisateur a saisi des informations, mais la brique a besoin d'un peu de temps pour exécuter une opération en back-end. Au lieu d'attendre la fin du processus pour répondre, vous pouvez confirmer que la demande est en cours. Par exemple, la brique peut répondre comme suit une fois les détails de paiement soumis, mais avant leur traitement : "OK, j'ai toutes les informations de paiement. Laissez-moi vérifier auprès de votre banque."
Utilisez également l'indicateur de saisie pour montrer que l'assistant numérique est en train de répondre.
Combler l'écart qui existe entre l'IA et la compréhension humaine
Le cerveau humain est de loin l'ordinateur le plus lent mais le meilleur au monde. Et cela est dû à sa capacité à détecter et à maintenir le contexte. Malgré toutes les améliorations apportées à l'IA conversationnelle, vous rencontrerez des situations dans lesquelles le chatbot ne sera pas en mesure de déterminer ce qu'un utilisateur veut ou à quoi servent les informations fournies par un utilisateur. C'est là que votre conception de conversation doit intervenir pour aider votre chatbot et l'utilisateur.
Par exemple, supposons les trois messages suivants :
- "Bloquer mon journal de 10 heures à 12 heures demain"
- "définir un marqueur dans mon calendrier pour demain à 10 heures du matin pendant 2 heures"
- "Pour 2 heures demain, créez une entrée dans mon horaire à 10 heures."
Les trois messages disent la même chose et le cerveau humain obtient immédiatement ce que l'utilisateur veut, quelle est la date de l'événement, et quelle est l'heure de début et de fin.
L'IA conversationnelle, lorsqu'elle est bien entraînée, comprendra que "bloquer mon journal", "définir un marqueur dans mon calendrier" et "créer une entrée dans mon calendrier" ont la même signification, qui est de créer un événement dans le calendrier utilisateur.
Cependant, en ce qui concerne les informations, l'IA conversationnelle extrait "demain" comme date de l'événement, 10 heures et 12 heures comme heure et 2 heures comme durée. En soi, il peut avoir du mal à comprendre quelle est l'heure de début d'une réunion et quelle est l'heure de fin, en particulier lorsque l'heure de fin doit être calculée à partir d'une durée. Et que signifie "demain" du point de vue d'un bot si vous vivez en Australie par opposition à (par exemple) la Jordanie ?
Pour tout ce que vous ne pouvez pas gérer dans votre implémentation, votre conception doit le gérer, même si cela signifie admettre que le bot n'a pas compris et donc réinvite pour une information.
Bonnes manières
Un assistant numérique doit prendre en compte le temps et les préoccupations de l'utilisateur. Voici quelques aspects de bonnes manières à intégrer à votre assistant numérique.
Echanges de banalités
Non seulement les échanges de banalités font naturellement partie des conversations humaines, mais une personne va également échanger des banalités avec un assistant numérique. Avec les assistants numériques, ces banalités possèdent un intérêt pratique :
- Elles permettent de vérifier qu'il s'agit d'un bot derrière l'interface de discussion et non d'un être humain.
- Elles permettent de découvrir ce que peut faire l'assistant numérique.
- Elles expriment de la frustration.
Par exemple, si l'utilisateur profère des insultes, il peut s'agir d'un signal indiquant à l'assistant numérique qu'il doit s'excuser, mettre l'utilisateur en relation avec un agent humain ou essayer de corriger autrement le problème.
Au minimum, vous devez être en mesure de gérer les échanges de banalités de base. Si vous les gérez correctement, votre assistant numérique semble plus intelligent, ce qui donne confiance aux utilisateurs.
Ne pas rejeter la faute sur l'utilisateur
Veillez à ne pas rejeter la faute sur les utilisateurs (de manière explicite ou implicite) lorsque leur entrée est incorrecte ou qu'ils interrompent d'une quelconque manière la progression de la conversation. Dans ces cas-là, la formulation doit cibler les difficultés de l'assistant numérique, et non ce que l'utilisateur a fait de manière incorrecte.
Par exemple, la réponse "Cet ID de commande est incorrect" implique subtilement que le problème incombe à l'utilisateur, ce qui peut l'énerver ou le vexer (et même être faux). "Je n'ai pas pu trouver de commande avec ce numéro" est une meilleure réponse.
Recours à l'empathie
Vous pouvez recourir à l'empathie et à l'humour pour rendre l'assistant numérique plus avenant, mais soyez mesuré, n'allez pas trop loin. Un malentendu est beaucoup plus néfaste que les avantages potentiels ne sont positifs.
Par exemple, si l'utilisateur d'un assistant numérique d'inscription à une conférence saisit "Je ne pourrai pas participer à la conférence", il peut être approprié de commencer la réponse par "Je suis vraiment désolé". Toutefois, si l'utilisateur dit plutôt "Je ne pourrai pas participer à la conférence car ma fille va accoucher", la réponse ne paraît pas du tout adaptée.
Conserver les interactions courtes
Pour faire avancer les choses, pensez au chemin le plus court du début à la fin d'une conversation. Utilisez les options dont vous avez besoin pour ignorer un arrêt dans une conversation. Voici deux options à prendre en compte :
-
Utilisez l'emplacement d'entité et guidez les utilisateurs sur la façon d'inclure une partie, sinon la totalité, des informations nécessaires à une tâche dans le premier message.
Dans les flux de dialogue conçus en mode Visual, les composants Common Response et Resolve Entity extraient automatiquement les valeurs d'entité fournies par les utilisateurs dans leur message initial et n'invitent pas ces valeurs fournies.
Dans les flux de dialogue conçus en mode YAML, vous pouvez utiliser la propriété
nlpResultVariable
sur les composants d'entrée pour activer cet emplacement automatique. -
Permet aux utilisateurs de fournir des informations supplémentaires lorsque vous y êtes invité. Par exemple, dans un bot de commande de pizza, lorsque l'utilisateur est invité à indiquer la taille de la pizza, pourquoi ne pas accepter également le type et les garnitures de pizza ? L'extraction d'informations hors séquence peut être facilement implémentée avec les entités de conteneur composite.
Conception différente d'une application Web
Il est probable que votre équipe possède une certaine expérience en développement d'applications Web et soit tentée d'appliquer des paradigmes d'application Web à l'assistant numérique, consciemment ou non. Essayez d'éviter cela. Le but d'un assistant numérique est de permettre à l'utilisateur de réaliser une tâche en passant par le langage naturel, et non de proposer une application Web dans une plus petite fenêtre.
Voici quelques points à prendre en compte :
- N'utilisez pas de termes semblables à des noms de champ de base de données dans une réponse.
Par exemple, au lieu de répondre "ID de commande non valide", préférez "Je n'ai pas pu trouver ce numéro de commande".
- Si l'utilisateur effectue une demande et qu'il existe des centaines de solutions possibles, ne répondez pas avec des centaines de lignes de données à faire défiler. Réfléchissez à des moyens d'aider l'utilisateur à affiner sa demande avant de lui présenter une liste plus concise.
Par exemple, si vous entrez chez un caviste et demandez une bouteille de vin, le marchand ne vous nomme pas chaque bouteille dont il dispose. Il vous interroge sur vos préférences (par exemple, vin rouge ou blanc, régions et caractéristiques du vin) avant d'énumérer des vins spécifiques. Votre brique peut fonctionner de la même manière.
- Trouvez des moyens de recueillir des informations pour la conversation sans interroger l'utilisateur sur tous les détails. Par exemple, vous pouvez disposer d'un moyen de déterminer l'emplacement d'un utilisateur sans le lui demander. Vous pouvez également demander à l'utilisateur d'envoyer une image (par exemple, un reçu) qui fournit les informations requises.
Prise en charge de plusieurs langues
Vous êtes-vous déjà demandé pourquoi les instructions d'installation pour les produits importés de l'étranger sont parfois si mal traduites ? Une raison probable est qu'un service de traduction a été utilisé et que le traducteur n'était pas familier avec le sujet ou le produit. Une autre raison est que certains idiomes n'existent pas ou sont exprimés différemment dans la langue à traduire. Juste pour vous donner quelques exemples pour ce qui fonctionnerait aux États-Unis mais probablement pas ailleurs :
- "Sous la météo"
- "accroché là-dedans"
- "Nous traverserons ce pont quand nous y arriverons"
- "Go Dutch"
- "Appelez-le un jour"
Pour vous assurer que les conversations définies pour votre assistant numérique fonctionnent également lors de la traduction, vous disposez de deux options : annoter les idiomes dans un regroupement de ressources pour que le traducteur connaisse la signification d'un message ou ne pas utiliser les idoms du tout. Naturellement, les services de traduction automatique ne vous serviront pas bien lors de la traduction des réponses de votre bot dans une langue étrangère.
Liste de contrôle pour la conception de conversations
- ☑ Assurez-vous que la conception de votre conversation guide les utilisateurs dans l'utilisation du chatbot, quelle que soit leur expérience actuelle.
- ☑ Si vous le pouvez, vérifiez auprès de personnes du groupe d'utilisateurs cible si le persona fonctionne ou non.
- ☑ Passez en revue les messages de votre bot pour trouver des termes techniques qui n'ont pas beaucoup de sens pour les utilisateurs.
En savoir plus
- Vidéo d'Oracle Digital Assistant Design Camp : Le workflow éprouvé pour la conception de conversations centrées sur l'humain