Tech

Comment améliorer l'expérience utilisateur lors d'une conversation complexe : les SmartBlocks de Like a Bot

Parmi 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.

J'aimerais faire une simulation de prêt
D'accord ! Pour continuer, j'ai besoin du montant du prêt
30000 euros
Merci ! Peux-tu me donner la durée du prêt ?
3 ans
OK ! Il ne me manque plus que ton adresse email.
gerard.dupont@yahoo.fr
Je t'ai envoyé les résultats de la simulation par mail à gerard.dupond@yahoo.fr

Que se passe t-il si l'utilisateur se trompe ou change d'avis en cours de route ?


J'aimerais faire une simulation de prêt
D'accord ! Pour continuer, j'ai besoin du montant du prêt.
30000 euros
Merci ! Peux-tu me donner la durée du prêt ?
En fait je veux emprunter 25000 euros
Je n'ai pas compris... Peux-tu me donner la durée du prêt ?

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 :

J'aimerais faire une simulation de prêt
D'accord  ! Pour continuer, j'ai besoin du montant du prêt.
Je veux emprunter 30000 euros sur 10 ans.
Merci ! Peux-tu me donner la durée du prêt  ?

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.

J'aimerais faire une simulation de prêt
D'accord ! Pour continuer, j'ai besoin du montant du prêt, de la durée du prêt et de ton adresse email.
Je veux emprunter 30000 euros sur 10 ans.
Très bien, il ne me manque plus que ton adresse email.
En fait je veux emprunter 25000 euros
J'ai bien mis à jour le montant du prêt, j'ai encore besoin de ton adresse email.
gerard.dupond@yahoo.fr

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. 

​Il est ainsi possible de générer automatiquement la réponse du bot en fonction de la phrase de l'utilisateur grâce aux quelques paramètres fournis par le concepteur du chatbot. Raphaël

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.

response_structure-1.png#asset:196:articleContentImage

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.

Partager l’article : arrow_backAccueil du Blog