Concevoir l’expérience utilisateur

S’APPLIQUE À : SDK v4

Vous pouvez créer des bots incluant différentes fonctionnalités : texte, boutons, images, cartes enrichies affichées sous forme de carrousel ou de liste, etc. Toutefois, chaque canal, tel que Facebook, Slack, et ainsi de suite, finit par contrôler la façon dont ses clients de messagerie affichent les fonctionnalités. Même lorsque plusieurs canaux prennent en charge une fonctionnalité, il est possible que chaque canal affiche cette fonctionnalité de façon légèrement différente. Lorsqu’un message contient des fonctionnalités non prises en charge de façon native par un canal, ce dernier peut tenter d’afficher une version réduite du contenu du message, sous forme de texte ou d’image statique, ce qui peut affecter considérablement l’apparence du message sur le client. Il arrive qu’une fonctionnalité ne soit pas du tout prise en charge par un canal. Par exemple, les clients GroupMe ne peuvent pas afficher d’indicateur de saisie.

Contrôles utilisateur riches

Les contrôles utilisateur riches sont des contrôles d’interface utilisateur communs tels que des boutons, des images, des carrousels et autres menus que le bot présente à l’utilisateur, avec lesquels celui-ci interagit pour communiquer ses choix et intentions. Un bot peut utiliser une série de contrôles d’interface utilisateur pour imiter une application, voire s’exécuter incorporé à l’intérieur d’une application. Quand un bot est incorporé dans une application ou un site Web, il peut représenter pratiquement tout contrôle d’interface utilisateur en utilisant les fonctionnalités de l’application qui l’héberge.

Les développeurs d’applications et de sites Web s’appuient sur des contrôles d’interface utilisateur pour permettre aux utilisateurs d’interagir avec leurs applications. Ces mêmes contrôles d’interface utilisateur peuvent également être efficaces dans les bots. Par exemple, les boutons constituent un excellent moyen de présenter à l’utilisateur des choix simples. Permettre à l’utilisateur de communiquer « Hôtels » en sélectionnant un bouton étiqueté Hôtels est plus facile et plus rapide que de forcer l’utilisateur à taper « Hôtels ». Sur les appareils mobiles, par exemple, la sélection est souvent préférée à la saisie.

Cartes

Les cartes vous permettent de présenter à vos utilisateurs différents messages visuels, audio et/ou sélectionnables, et de faciliter le flux conversationnel. Si un utilisateur doit choisir parmi un ensemble fixe d’éléments, vous pouvez afficher un carrousel de cartes, contenant chacune une image, une description textuelle et un bouton de sélection unique. Si un utilisateur dispose d’un ensemble de choix pour un élément, vous pouvez présenter une image unique plus petite et une collection de boutons avec différentes options parmi lesquelles choisir. Ont-ils demandé des informations supplémentaires sur un sujet ? Les cartes peuvent fournir des informations détaillées à l’aide d’une sortie audio ou vidéo, ou un reçu détaillant l’expérience d’achat. Il existe un éventail incroyablement vaste d’utilisations des cartes pour guider la conversation entre votre utilisateur et votre bot. Le type de carte que vous utilisez est déterminé par les besoins de votre application. Examinons de plus près les cartes, leurs actions et certaines utilisations recommandées.

Les cartes d’Azure AI Bot Service sont des objets programmables contenant des collections standardisées de contrôles utilisateur riches, reconnus sur un vaste éventail de canaux. Le tableau suivant décrit la liste des cartes disponibles et les meilleures pratiques d’utilisation suggérées pour chaque type de carte.

Type de carte Exemple Description
AdaptiveCard Image of an Adaptive Card. Format d’échange de carte ouvert restitué sous la forme d’un objet JSON. Généralement utilisé pour le déploiement de cartes via plusieurs canaux. Les cartes s’adaptent à l’apparence de chaque canal hôte.
AnimationCard Image of an animation card. Carte pouvant lire des images GIF animées ou de courtes vidéos.
AudioCard Image of an audio card. Carte pouvant lire un fichier audio.
HeroCard Image of a hero card. Carte contenant une image de grande taille, un ou plusieurs boutons, et du texte. Généralement utilisée pour mettre en évidence une sélection d’utilisateur potentielle.
ThumbnailCard Image of a thumbnail card. Carte contenant une image miniature, un ou plusieurs boutons, et du texte. Généralement utilisée pour mettre en évidence les boutons destinés à une sélection d’utilisateur potentielle.
ReceiptCard Image of a receipt card. Carte permettant à un bot de fournir un reçu à l’utilisateur. Elle contient généralement la liste des articles à inclure sur le reçu, la taxe et le total, ainsi que du texte.
SignInCard Image of a sign-in card. Une carte qui permet à un utilisateur de se connecter. Elle contient généralement du texte et un ou plusieurs boutons que l’utilisateur peut utiliser pour lancer un processus de connexion.
SuggestedAction Image of suggested actions rendered as buttons within a chat. Présente à l’utilisateur un ensemble d’actions de cartes représentant un choix d’utilisateur. Les boutons disparaissent après la sélection de l’une des actions suggérées.
VideoCard Image of a video card. Carte pouvant lire des vidéos. Généralement utilisée pour ouvrir une URL et diffuser en continu une vidéo disponible.
CardCarousel Image of a card carousel. Collection de cartes à défilement horizontal permettant à l’utilisateur de visualiser facilement une série de choix d’utilisateur possibles.

Les cartes vous permettent de concevoir votre bot, puis de le faire fonctionner sur différents canaux. Cependant, certains types de cartes ne sont pas totalement pris en charge sur tous les canaux disponibles.

  • Vous trouverez des instructions détaillées sur l’ajout de cartes à votre bot dans Ajouter des pièces jointes de média de carte riches et Ajouter des actions suggérées aux messages.

  • Pour obtenir un exemple de code, consultez les exemples de bots suivants dans le référentiel d’exemples Bot Framework.

    Exemple Nom Description
    6 Utilisation de cartes Illustre l’utilisation de tous les types carte.
    7 Des cartes adaptatives Illustre l’utilisation de cartes adaptatives.
    8 Actions suggérées Illustre l’utilisation des actions suggérées.
    15 Documents joints Illustre comment accepter les pièces jointes fournies par l’utilisateur.

Lors de la conception de votre bot, n’écartez pas automatiquement les éléments d’interface utilisateur courants comme n’étant pas suffisamment intelligents. Comme indiqué dans l’Expérience utilisateur conversationnelle, votre bot doit être conçu pour résoudre le problème de l’utilisateur de la manière la meilleure, la plus rapide et la plus simple possible. Ne cédez pas à la tentation de commencer par incorporer la compréhension du langage naturel, car elle s’avère souvent superflue et introduit une complexité injustifiée.

Conseil

Commencez par utiliser les contrôles d’interface utilisateur minimaux, qui permettent au bot de résoudre le problème de l’utilisateur, puis ajoutez des éléments par la suite si ces contrôles s’avèrent insuffisants.

Compréhension du texte et du langage naturel

Un bot peut accepter une entrée de texte de l’utilisateur, et tenter d’analyser cette entrée sur la base d’une mise en correspondance d’expression régulière ou à l’aide d’API de compréhension du langage naturel. Selon le type d’entrée de l’utilisateur, la compréhension du langage naturel peut être ou non une bonne solution.

Dans certains cas, un bot peut poser une question spécifique à l’utilisateur. Par exemple, si le bot demande « Quel est votre nom ? », l’utilisateur peut répondre avec un texte spécifiant uniquement le nom (« Jean »), ou avec une phrase (« Mon nom est Jean »).

Poser des questions spécifiques permet de réduire l’étendue des réponses que le bot pourrait raisonnablement recevoir, et donc la complexité de la logique nécessaire pour analyser et comprendre la réponse. Par exemple, considérez la question ouverte et large : « Comment vous sentez-vous ? ». Comprendre les nombreuses permutations possibles des réponses possibles à cette question est une tâche complexe.

En revanche, des questions spécifiques telles que « Ressentez-vous de la douleur ? Oui/Non » et « Où ressentez-vous de la douleur ? Poitrine/Tête/Bras/Jambe » invitent probablement à fournir des réponses plus spécifiques qu’un bot peut analyser et comprendre sans que vous deviez implémenter la compréhension du langage naturel.

Conseil

Autant que possible, posez des questions spécifiques appelant des réponses dont l’analyse ne nécessite pas de fonctionnalités de compréhension du langage naturel. Cela simplifiera votre bot et augmentera sa capacité à comprendre l’utilisateur.

Dans d’autres cas, un utilisateur peut taper une commande spécifique. Par exemple, un bot de DevOps qui permet aux développeurs de gérer des machines virtuelles peut être conçu pour accepter des commandes spécifiques telles que « /ARRÊTER LA MACHINE VIRTUELLE XYZ » ou « /DÉMARRER LA MACHINE VIRTUELLE XYZ ». Concevoir un bot de façon à ce qu’il accepte des commandes spécifiques telles que celle-ci permet une bonne expérience utilisateur, car la syntaxe est facile à apprendre, et le résultat attendu de chaque commande est clair. En outre, le bot n’a pas besoin de fonctionnalités de compréhension du langage naturel, car l’entrée de l’utilisateur peut être aisément analysée à l’aide d’expressions régulières.

Conseil

Concevoir un bot de façon à ce qu’il exige des commandes spécifiques de l’utilisateur permet souvent d’offrir une bonne expérience utilisateur, tout en éliminant la nécessité pour le bot d’être capable de comprendre le langage naturel.

Pour un bot de base de connaissances ou de questions et réponses, un utilisateur peut poser des questions générales. Par exemple, imaginez un bot capable de répondre à des questions basées sur le contenu de milliers de documents. Azure AI Services et Recherche Azure sont deux technologies spécifiquement conçues pour ce type de scénario. Pour plus d’informations, consultez Concevoir des bots de base de connaissances et Compréhension du langage.

Conseil

Si vous concevez un bot destiné à répondre à des questions sur la base de données, structurées ou non, extraites de bases de données, de pages Web ou de documents, songez à utiliser des technologies spécifiquement conçues pour ce type de scénario au lieu d’essayer de résoudre le problème avec la fonctionnalité de compréhension du langage naturel.

Dans d’autres scénarios, un utilisateur peut taper des demandes simples formulées en langage naturel. Par exemple, un utilisateur peut taper « Je veux une pizza pepperoni » ou « Y a-t-il des restaurants végétariens ouverts à moins de 3 km de chez moi ? ». Des API de compréhension du langage naturel conviennent parfaitement pour de tels scénarios.

Les API permettent à votre bot d’extraire les composants clés du texte de l’utilisateur pour identifier l’intention de celui-ci. Lors de l’implémentation de fonctionnalités de compréhension du langage naturel dans votre bot, définissez des attentes réalistes en ce qui concerne le niveau de détail que les utilisateurs sont susceptibles de fournir en entrée.

Conseil

Lors de la création de modèles de langage naturel, ne supposez pas que les utilisateurs fourniront toutes les informations requises dans leur requête initiale. Concevez votre bot de façon à ce qu’il demande spécifiquement les informations dont il a besoin, en amenant l’utilisateur à les lui fournir au travers d’une série de questions, si nécessaire.

Speech

Un bot peut utiliser des entrées et sorties de saisies vocales pour communiquer avec les utilisateurs. Dans les cas où un bot est conçu pour prendre en charge des appareils dépourvus de clavier ou d’écran, la voix est le seul moyen de communiquer avec l’utilisateur.

Choix entre contrôles utilisateur riches, texte et langage naturel, et voix

Tout comme les gens communiquent entre eux à l’aide d’une combinaison de gestes, de voix et de symboles, les bots peuvent communiquer avec les utilisateurs à l’aide d’une combinaison de contrôles utilisateur riches, de texte (parfois en langage naturel) et de voix. Ces modes de communication peuvent être utilisés ensemble. Vous n’avez pas besoin d’en choisir un au détriment des autres.

Par exemple, imaginez un « bot cuisinier » conçu pour aider les utilisateurs à réaliser des recettes, qui soit capable de donner des instructions en lisant des vidéos ou en affichant une série d’images pour expliquer comment procéder. Certains utilisateurs préfèrent tourner les pages de la recette ou poser des questions vocales au bot tandis qu’ils confectionnent leur plat. D’autres préfèrent toucher l’écran d’un appareil au lieu d’interagir vocalement avec le bot. Lors de la conception de votre bot, intégrez des éléments d’expérience utilisateur prenant en charge les manières dont les utilisateurs préféreront probablement interagir avec votre bot, compte tenu des cas d’utilisation spécifiques auxquels il est destiné.