
De nombreux détaillants utilisent des chatbots pour communiquer efficacement avec leurs clients, et certains commencent à étendre ce service aux plateformes de messagerie instantanée les plus populaires. Yoyu Li, architecte senior de données Cloud, et Olga Lugai, développeur de systèmes Cloud, expliquent comment elles ont utilisé les modules de construction de Google Cloud Ai pour créer un chatbot WhatsApp pour un détaillant alimentaire fictif en deux semaines seulement.
WhatsApp est l’une des plateformes de messagerie et d’appel les plus populaires au monde. De nombreuses entreprises et organisations ont utilisé l’API WhatsApp pour atteindre leur public cible et, sans surprise, nous avons vu l’utilisation de chatbots en combinaison avec l’API. Cependant, alors que la plupart des chatbots sont capables de comprendre les textes, les messages multimédias – tels que les images et les notes vocales – restent encore largement inexplorés. C’est pourquoi nous avons construit cette démo pour montrer comment vous pouvez utiliser Google Cloud AI Hub pour donner un sens aux données multimédias produites dans de telles conversations.
Dans cette démo, une entreprise de vente au détail fictive souhaite développer un chatbot WhatsApp pour traiter les demandes ou les plaintes des clients. Pour offrir aux utilisateurs une expérience plus naturelle, l’entreprise souhaite :
- Encourager les utilisateurs à envoyer des photos de produits ou des instantanés d’un code-barres de produit, au lieu de taper les noms exacts des produits
- Être en mesure de rediriger les informations clés (telles que le type de demande, le produit et le magasin auquel il est fait référence) vers les canaux appropriés pour mieux aider les clients
- Être en mesure de fournir un support multilingue à leurs clients
- Être en mesure d’analyser les données au niveau mondial afin de fournir un meilleur service à leurs clients, par exemple en découvrant les problèmes fréquemment soulevés, les produits problématiques ou les fournisseurs
En utilisant les services Cloud AI entièrement gérés sur Google Cloud Platform, nous avons construit cette démo en deux semaines.
L’architecture globale
En raison des restrictions sur l’API de WhatsApp (actuellement dans une préversion publique limitée), pour cette démo, nous avons utilisé le wrapper What’s API de Twilio pour faciliter la mise en œuvre. Dans une approche conventionnelle, nous aurions intégré les services en utilisant le plugin Twilio pour Dialogflow et Cloud Functions pour les « exécutions personnalisées » dans Dialogflow. Cependant, comme Dialogflow ne conserve pas actuellement les médias dans un message et que nous voulons être en mesure de donner un sens aux images que les utilisateurs envoient, nous devons adopter une approche différente.
Ainsi, nous utilisons Cloud Functions pour gérer directement les messages de l’API Twilio et nous utilisons toujours Dialogflow pour l’extraction d’entités et la gestion du contexte. De cette façon, en plus de Dialogflow, nous pouvons également pluginner plusieurs services d’IA à partir de Google Cloud AI Hub.
Extraction d’informations clés à partir des messages
Quel que soit le format des messages – texte ou image – pour aider les clients, nous devons d’abord extraire certaines informations clés de chaque conversation. Par exemple, à quel produit le client fait-il référence ? S’agit-il d’une plainte ou d’une demande générale ?
Pour les messages texte, nous pouvons utiliser l’extraction d’entité de Dialogflow pour distiller certaines informations telles que les noms de produits et les noms de magasins à partir des textes. Par exemple, si le client envoie « J’ai acheté un pot de Nutella » et que «Nutella » est dans notre ensemble d’entités personnalisées pour le catalogue de produits, nous savons que le produit dont le client parle est Nutella ; et pour les images, nous devrons utiliser l’API Vision, dont nous discuterons plus tard.
Extraction personnalisée d’entités pour les noms de produits
Naturellement, les clients n’utilisent pas toujours le mot « plainte » pour exprimer leur mécontentement. Nous utilisons donc une combinaison de Dialogflow et de Sentiment Analysis dans les blocs de construction Google Cloud AI pour comprendre l’intention du client. Par exemple, si le client dit « Je ne suis pas satisfait » d’un produit, nous pouvons toujours comprendre qu’il soulève une réclamation.
Identification des produits dans les images
Afin d’identifier les produits dans les images jointes aux messages WhatsApp, nous utilisons la fonction de recherche de produits dans l’API Google Cloud Vision. La recherche de produits permet aux développeurs de former et d’utiliser un modèle de classification multi-classes personnalisable pour détecter les produits dans les images.
Pour créer un ensemble de produits dans la recherche de produits, nous prenons d’abord quelques photos de chaque produit que nous souhaitons inclure dans le catalogue ; ensuite, nous étiquetons ces produits avec leur ID de produit. Avec les métadonnées du produit (telles que la catégorie de produit), nous soumettons les données via l’API Cloud Vision, puis la recherche de produit sélectionnera automatiquement le meilleur algorithme, formera et déploiera le modèle pour nous.
Pour effectuer une recherche de produit une fois la formation terminée, nous appelons simplement l’API avec une URL d’image, puis l’API nous indiquera la probabilité que l’image corresponde à l’un des produits plus spécifiques du catalogue.
Vous trouverez ci-dessous quelques exemples d’images que nous avons utilisées pour entraîner le modèle. Nous avons étiqueté chaque image comme une confiture ou une tasse. Nous avons fixé un seuil de probabilité minimum de 50 % dans l’application chatbot. Une fois la formation terminée, si un client envoie une photo de la confiture au chatbot et que la recherche de produit pense que l’image correspond à 75 % à une image de confiture précédente utilisée dans la formation, le chatbot comprendra que la confiture est le produit auquel il est fait référence dans la conversation.
Exemples d’images utilisées dans la formation à la recherche de produits
Extraction de codes-barres
L’extraction de codes-barres à partir d’images n’est toutefois pas un défi typique de la vision par ordinateur : les codes-barres sont conçus pour la commodité des machines. Il est intéressant de noter que Google ne fournit qu’un service d’extraction de codes-barres dans le cadre du kit ML pour que les appareils mobiles puissent le traiter localement. Mais dans WhatsApp, nous n’avons pas le contrôle de l’application elle-même, nous devons donc traiter les images et extraire le code-barres à distance. Heureusement, la technologie d’extraction des codes-barres est assez mature, tout ce que nous avons à faire est de déployer une solution existante sur Google Cloud. Dans cette solution, nous avons hébergé ce module dans Cloud Run. Cloud Run est un service de conteneur entièrement géré dont le prix est basé sur les secondes de calcul et les demandes, il n’y a donc pas de coût permanent si l’API n’est pas déclenchée.
Extraction du code-barres d’une image dans WhatsApp
Le souvenir d’une conversation
Maintenant, nous devrions être en mesure d’extraire des informations clés à partir de textes et d’images. Mais l’un des défis persistants dans la construction de chatbots est que les machines n’ont pas intrinsèquement une bonne mémoire.
Nous avons besoin d’une mémoire à court terme pour la conversation, car nous savons tous à quel point il peut être frustrant lorsque la personne à qui nous parlons ne se souvient pas de quelque chose que vous avez dit quelques minutes auparavant.
Nous avons également besoin d’une mémoire à long terme pour nous souvenir des noms et des préférences des clients afin de fournir une expérience plus personnelle.
Nous utilisons l’objet contextuel dans Dialogflow comme mémoire à court terme pour stocker temporairement les informations pendant la cause de la conversation :
Context = { Product:{ Parameters: {product-name: "Cien Hand Gel"} }, Store:{ Parameters: {store-name:"Holborn Store"} } }
Example of A Context Objec
En ce qui concerne la « mémoire à long terme », nous disposons des informations sur les clients, telles que les noms et les préférences, dans la base de données, puis nous pouvons utiliser le numéro de téléphone mobile transmis par Twilio pour récupérer les détails.
Support multilingue
Il est courant pour un détaillant multinational d’avoir des clients dans le monde entier. La mise en œuvre d’une solution pour prendre en charge plusieurs langues peut être coûteuse ; mais pour la démo, nous pouvons y parvenir facilement en utilisant un bloc de construction dans Google Cloud AI Hub que tout le monde connaît bien – l’API Translate.
Lorsqu’un utilisateur envoie un message qui n’est pas en anglais, nous utilisons d’abord l’API de détection de la langue pour reconnaître de quelle langue il s’agit, puis nous le traduisons en anglais et le transmettons à Dialogflow pour traitement.
Enfin, nous traduisons la réponse de Dialogflow dans la langue d’origine utilisée par le client, avant d’envoyer la réponse. L’API Google Translate fonctionne raisonnablement bien pour notre objectif :
Utilisation de l’API Translate pour le support multilingue
Qu’en est-il des emojis ?
En passant, les emojis peuvent également être pris en charge. Les emojis sont des caractères spéciaux, la seule différence est que, pour la plupart d’entre nous, nous ne pouvons pas taper en octets ni lire Unicode comme U+1F604. Au lieu de U+1F604, nous disons :smile:. Nous devons donc traduire par programmation les emojis en alias et vice versa. Dans la démo, nous utilisons la bibliothèque python emoji pour « emojiser » et « demojiser » les caractères :
>> import emoji >> print(emoji.emojize(’Google Cloud is :thumbsup:’, use_aliases=True)) Google Cloud est ? >> print(emoji.demojize(’Google Cloud is ?’)) Google Cloud est :thumbs_up :
Obtenir des informations commerciales
L’application des données collectées à partir des messages WhatsApp peut améliorer le service client et également aider dans les conversations stratégiques. Lorsqu’elle est structurée et présentée à l’aide des outils de visualisation, elle peut devenir une ressource précieuse pour diverses équipes de l’entreprise.
Les données sont stockées dans BigQuery (le service de stockage de données de GCP) où elles peuvent être interrogées directement pour fournir des informations exploitables. Cependant, afin d’analyser plus efficacement des données complexes, nous pouvons connecter Tableau, un logiciel de visualisation de données populaire, à BigQuery pour afficher des données en direct et créer des tableaux de bord interactifs.
Au lieu de charger toutes les données dans Tableau, nous exécutons une requête pour obtenir uniquement les informations dont nous avons besoin pour répondre à certaines questions commerciales. Si d’autres sources de données contiennent des informations sur les produits et services que nous souhaitons inclure dans la visualisation, il est possible d’ajouter plusieurs connexions. Les feuilles de calcul Excel, les fichiers CSV et les bases de données relationnelles sont quelques exemples des types de fichiers et des sources qui peuvent être combinés avec les données WhatsApp pour améliorer nos visualisations.
Exemple de graphique géographique créé à partir des multiples sources de données
Une fois que plusieurs graphiques sont joints dans un tableau de bord complet, il peut être publié et présenté à d’autres équipes de votre entreprise. Il peut devenir un outil inestimable pour divers services afin de répondre à des questions spécifiques à l’emplacement, d’aider à répondre aux préoccupations courantes des clients et d’apporter des améliorations stratégiques.
Les données en direct de WhatsApp qui alimentent les tableaux de bord vous permettent de voir l’état des produits et services en temps réel et de prendre la bonne décision au bon moment.
Comment nous l’avons construit
Pour récapituler, le schéma ci-dessous nous offre un aperçu de l’architecture finale :
Les composants d’architecture utilisés dans cette démo sont 100 % sans serveur, par conséquent, il n’y a pas d’infrastructure que nous devons tourner ou maintenir. Nous avons construit cette démo de manière codée, ce qui signifie que les configurations de chaque composant sont codifiées, ce qui nous permet de suivre facilement les modifications et de redéployer la solution dans un nouvel environnement en un minimum de temps.
Nous avons utilisé Terraform pour les configurations de certains éléments GCP, tels que Cloud Functions, Cloud Run, BigQuery (pour l’analyse) et Datastore (pour la base de données des clients). Toutefois, de nombreux composants critiques utilisés dans la démonstration n’étaient pas encore pris en charge par Terraform, tels que Dialogflow et Product Search in Vision API. Pour Dialogflow, nous pouvons configurer l’agent avec le modèle JSON ; et pour la recherche de produits, nous utilisons du code Python pour automatiser le processus d’étiquetage, de formation et de déploiement.
Nous avons également construit un pipeline automatisé de test et de déploiement dans Bitbucket, ce qui est la clé de notre succès dans le développement de la démo en seulement deux semaines.
Conclusions
Nous avons présenté une démonstration de bout en bout de l’utilisation de WhatsApp comme plateforme de service à la clientèle pour un client de détail fictif, en utilisant Twilio, Tableau et les blocs de construction Google Cloud AI.
Cette démonstration montre que Google Cloud offre une boîte à outils puissante pour créer des applications basées sur l’IA. Tout au long du projet, nous n’avons pas eu besoin d’élaborer nous-mêmes des modèles ML. Nous avons simplement utilisé les API de haut niveau, telles que les API de langage et de vision, pour réaliser ce qui aurait été autrement difficile à accomplir.
Nous avons vu de plus en plus d’entreprises et d’organisations qui adoptent WhatsApp comme outil de communication pour interagir avec leur public cible. Cette solution est très adaptable à différents scénarios, notamment si une capacité de traitement multimédia est souhaitée. La prochaine étape consistera à mettre la main sur l’API WhatsApp (une fois qu’elle sera sortie de l’aperçu limité), afin que nous puissions étendre les fonctionnalités à un plus grand nombre de formats de médias, tels que l’audio, la vidéo et les données de localisation.
Pour en savoir plus sur la façon dont notre pratique Data Insights aide nos clients à obtenir des informations uniques et à fournir des expériences innovantes, cliquez ici. En outre, pour voir comment nous exploitons la puissance de Google Cloud pour créer une technologie révolutionnaire et développer des solutions transformationnelles pour bon nombre des plus grandes entreprises du monde, cliquez ici.