Comment améliorer l'expérience utilisateur lors d'une conversation complexe : les SmartBlocks de Like a Bot
Le 19 décembre 2017Parmi les qualités d'un bon chatbot, la fluidité de l'expérience utilisateur y tient une place importante. Pour obtenir des informations auprès d'un utilisateur, la plupart des chatbots utilisent un arbre de décision statique, qui demande une information à la fois, puis passe à la question suivante une fois que le message a été compris. Cette approche très cadrée permet rarement à l'utilisateur de pouvoir changer facilement les informations fournies et exige de poser des questions très précises, une à la fois.
Le problème posé dans une conversation complexe
Prenons l'exemple d'un bot permettant de réaliser une simulation de prêt. Pour faire la simulation, le bot a besoin de la durée et du montant du prêt, ainsi que d'une adresse email pour envoyer les résultats à l'utilisateur.
Que se passe t-il si l'utilisateur se trompe ou change d'avis en cours de route ?
S'attendant à recevoir une durée, le chatbot n'a pas compris que l'utilisateur souhaitait changer le montant du prêt. Ce à quoi le chatbot répond un "Je n'ai pas compris", message bien connu de quiconque ayant déjà testé quelques chatbots.
Un autre inconvénient des arbres de décision apparaît quand l'utilisateur fournit plusieurs paramètres à la fois :
Le chatbot ne vérifie que la présence du paramètre demandé (ici le montant du prêt), la durée du prêt n'a ainsi pas été prise en compte.
Les utilisateurs devraient pouvoir librement changer d'avis sans avoir à recommencer depuis le début, ou de donner les informations demandées dans l'ordre qu'ils le souhaitent. Autrement, de tels chatbots ne sont qu'une version conversationnelle des formulaires qu'on trouve sur les sites web.
Une solution théorique : le RAN
Le Random Access Navigation (RAN) est une réponse à ce besoin d'une plus grande flexibilité. Proposé initialement par Shane Mac d'Assist, ce concept vise à détecter à chaque étape les paramètres fournis par l'utilisateur, à identifier les paramètres manquants et à les demander à l'utilisateur.
L'ordre de saisie des paramètres n'a ainsi plus d'importance. Il gère également la mise à jour de paramètres comme illustrée ci-dessus. Le RAN répond ainsi bien aux limites des arbres de décision statiques.
L'approche la plus courante pour implémenter le RAN consiste à demander au concepteur du bot de fournir pour chaque paramètre demandé la question qui sera posé à l'utilisateur si ce paramètre est manquant. Pour notre chatbot de simulation de crédit, on pourrait ainsi avoir :
- Pouvez-vous me donner le montant du crédit ?
- J'ai besoin de la durée du crédit.
- Est-ce que je peux avoir votre adresse email ?
Après avoir analysé le message de l'utilisateur pour identifier les paramètres fournis, le chatbot sélectionne une des questions pré-configurée associée à un des paramètres manquants.
Bien qu'intéressante, cette approche souffre de certaines limitations :
- Il n’y a aucune confirmation de la part du chatbot qu'il a bien compris que l'utilisateur a fourni un des paramètres. La capacité de compréhension des chatbots étant encore limitée, il est important de fournir régulièrement des retours à l'utilisateur pour lui indiquer que le chatbot ne s'égare pas.
- Quand le chatbot ne détecte aucun des paramètres demandés, il n'y a pas de message qui l'indique à l'utilisateur.
- Le fait pour le concepteur du bot de devoir fournir une question pour chaque paramètre demandé est chronophage et répétitif, surtout quand de nombreux paramètres sont demandés.
- Enfin, en n'informant pas l'utilisateur de la liste des paramètres manquants, on risque de décourager la saisie de plusieurs paramètres dans la réponse, qui présente pourtant un gain en terme d'expérience utilisateur.
La solution Like a Bot : les SmartBlocks
C'est en partant de ces observations que nous avons conçu les SmartBlocks, une implémentation maison du RAN.
Ainsi, pour le bot de simulation de prêt, nous n'avons besoin de fournir que le nom des paramètres demandés (durée du prêt, montant du prêt, adresse email), ainsi que quelques informations lexicales concernant ces paramètres (utilisation d'un pronom personnel comme votre, genre et nombre du paramètre,...). À partir de ces éléments, le chatbot sera capable de générer automatiquement une réponse appropriée.
De plus, le SmartBlock gère le cas où aucun paramètre n'a été détecté dans le message, en affichant un message d'erreur, comme "Je n'ai pas compris, pouvez-vous reformuler ? ". Il détecte également quand l'utilisateur fournit plusieurs fois un paramètre (comme dans "Je veux faire un prêt de 3 ans ou 2 ans"), et demande à l'utilisateur de choisir une des deux valeurs.
Le SmartBlock permet donc non seulement un gain de temps pour le concepteur du chatbot, mais aussi une gestion native des saisies utilisateur inattendues.
Pour conclure
Les SmartBlocks permettent de fluidifier la conversation entre le chatbot et l'utilisateur en offrant plus de flexibilité que les arborescences utilisées par la plupart des chatbots. Cela est particulièrement vrai dans les cas où le chatbot a besoin de recueillir plusieurs informations pour effectuer une tâche précise. Ils permettent de plus à l'utilisateur de modifier les informations fournies tant qu'il reste des paramètres à compléter.