Et si on fait parler Avito ? Mon ChatBot Pour Avito
“Everyone has their own ways of expression. I believe we all have a lot to say, but finding ways to say it is more than half the battle.” Criss Jami, Salomé: In Every Inch In Every Mile
Ma motivation pour les bots
Je suis très paresseux et j’évite le travail par tous les moyens possibles, surtout s’il est répétitif et ennuyeux.
Le monde industriel a réussi à construire des robots qui nous ont libérés de certaines tâches.
Le monde digital vit une révolution similaire, fondée sur ce qu’on appelle les bots.
C’est quoi un bot ?
Les bots sont des mini-programmes programmés pour effectuer des tâches bien définies en réponse à des commandes transmises via différentes interfaces. Le chat reste l’interface la plus utilisée.
Dans un de mes anciens posts, j’ai décrit comment construire et utiliser un chatbot pour assurer le suivi de la plateforme d’intégration continue.
Le bot en question était artisanal et compliqué, car il reposait sur une stack complexe : PhantomJS, Docker, Python et la bibliothèque Hubot de GitHub, qui sont pour moi les premiers pionniers de cette révolution.
Dans ce post, je vais décrire comment créer un chatbot pour Avito, le célèbre site d’annonces.
Pourquoi Avito ?
Actuellement, je suis en pleine recherche d’une voiture. Avito étant le premier site d’annonces au Maroc, il reste le meilleur moyen pour chercher. Cependant, je me retrouve quotidiennement à répéter les mêmes tâches ennuyeuses : aller sur le site, choisir la région, sélectionner la catégorie de recherche… Grrrr !
C’était trop ennuyeux pour moi, alors j’ai décidé de créer un chatbot qui ferait le travail à ma place et qui pourrait même m’alerter dès qu’une nouvelle annonce correspondant à mes critères serait déposée.
Le chatbot à mon secours ?
Depuis mon dernier bot, les grandes entreprises ont vu l’intérêt d’offrir une interface bot au grand public. Facebook, Microsoft, Telegram, WeChat… ont tous publié leurs API pour permettre la création de bots.
Il y a actuellement une guerre féroce entre ces plateformes. Par exemple, Financial Times a considéré l’annonce faite par WeChat comme la vraie menace à laquelle Apple (iPhone) devrait faire face, plutôt qu’Android ou Samsung : WeChat launches alternative to Apple App Store.
Techniquement
Ce qui est très bien avec les bots, c’est que leur implémentation est facile dès lors qu’on sait parler REST :).
Pour mon AvitoBot, je me suis basé sur les API de Messenger. Je vous conseille ce tutoriel Messenger Bot.
Choix du framework
Malheureusement, Messenger, contrairement à Microsoft Skype, Telegram ou d’autres, n’offre pas un client prêt à l’emploi pour son API. J’ai donc dû me débrouiller et construire mes propres modules Node.js, car les bibliothèques existantes ne répondaient pas à mes besoins.
Pour mon bot, j’ai choisi une stack que je n’utilise pas dans mon travail quotidien (ce qui me permet d’échapper un moment à la lourde plateforme SAP-Hybris). J’ai opté pour le léger et agréable framework Express avec Node.js.
Déploiement
Difficile de trouver mieux qu’Heroku. Leur documentation est excellente pour commencer.
Design
J’ai longuement réfléchi à rendre mon bot intelligent en utilisant des plateformes d’IA et de NLP (Natural Language Processing) comme wit.ai. Après plusieurs tests et analyses d’utilisation, j’en suis arrivé à la conclusion qu’il vaut mieux privilégier des dialogues prédéfinis et ajouter une touche de personnalité au bot (petites blagues, expressions aléatoires…).
Démo
Le chatbot Avito transformera votre expérience utilisateur en une conversation plus engageante.
Je vous laisse découvrir la vidéo :
Fonctionnalités en cours de développement
Pour offrir une meilleure expérience utilisateur, j’ai pensé à :
- Permettre de modifier un seul critère sans devoir tout recommencer.
- Stocker les critères pour une utilisation ultérieure.
- Permettre de créer une alerte afin que l’utilisateur soit informé à intervalles réguliers ou dès qu’une annonce est publiée.
Mon prochain bot
Étant un bon citoyen, je me suis déjà lancé dans la construction d’un bot pour l’administration et les services publics. Son objectif sera d’informer et de guider les utilisateurs dans leurs démarches administratives.
Qui est partant ?