Et si on fait parler Avito ? Mon ChatBot Pour Avito

Jan 23, 2017

“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

TL;DR : pour commencer à tester directement

Ma motivation pour les bots :

Je suis trés paresseux, j’évite le travail par n’importe quel moyen possible, surtout si’il est répétitif et ennuyeux.

Le monde indistruel est arrivé à construire des robots qui nous ont libéré de certains tâches, dans les usines ou même au sein de nos maisons ou bureaux.

Le monde digital est entrain de vivre une révolution pareille fondé sur ce qu’on appel les bots .

C’est quoi un bot :

les bots sont des mini programmes instruits/promrammés à faire des tâche bien déffinis en réponse à des commandes qui lui sont transmis, on peut leur commander via plusieur interfaces, le chat reste le plus utilisé de tous.

Dans un de mes anciens post j’ai décrit comment construire et utiliser un chatbot pour faire à ma place le suivie de la platform d’intégration continue.

Le bot en question etait tellement artisanal et commpliqué car il se basait sur stack complex:phantomjs, docker,python, et la librairie hubot de github, qui pour moi sont les premeiers pioniers de cette révolution (ŕeférence vers l’article de wired)

Dans ce post je vais décrir comment faire un chatBot Pour avito, le célébre site d’annonce.

Pourquoi avito?

Actuelement, je suis en plein recherche d’une voiture, avito étant le premier site d’annonce au maroc, reste le meilleur moyen pour chercher, du coup je me suis trouvé quotidienement devant l’obligation de faire les même tâches ennuyeuses d’aller au site, choisir la région, choisir la catégorie de recherche, ……. grrrr !

C’etait trop ennuyeaux pour moi, j’ai décider de créer un chatBot qui va faire le travail à ma place et je vais même le configurer pour m’alerter dés qu’une nouvelle annonce correspond à mes critéres soit déposée .

Le chatBot à mon secours?

Depuis mon dernier Bot, les grands ont vu l’intérết d’offrir une interface bot pour le grand public, ainsi Facebook, Microsofot, Telegramme, WeChat, …ont tous publié leur API pour permettre la creátion des bots.

Il y a actuellement une guerre féroce entre ces platform, Financial Times par exemple a considéré l’annonce faite par WeChat comme la vrai menace que Apple (iPhone) devrait faire face et non android ou samsung : WeChat launches alternative to Apple App Store

Tecnhiquement :

Ce qui est trés bien avec les bot 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 messenger bot tutorial

Choix de framework :

Malheureusement messenger à la différence de Microsofot skype, telegramm , ou autre n’offre pas un client prêt pour son api , du coup je me suis débrouiller et constuit des petits module nodjs, les librairies qui existe ne m’était pas trés utiles

Pour mon bot j’ai choisis une stack que je n’utilise pas dans mon travail quotidien (ça me permet d’échaper pendant un moment de la lourde platform SAP-Hybris), Le leger et gentille framework express avec NodeJs était mon choix.

Déploiement:

Je pense que c’est défficile de trouver mieux que Heroku.leur documentation est trés bien pour commencer.

Desing:

J’ai longuemenet réfléchis à faire un bot intélligent en utilisant des platforms d’AI et NLP (Natural language processing) comme wit.ai, aprés avoir testé et vu certains cas d’utilisation je suis arrivé à la conviction qu’il faut plutôt fair des dialogue prédéfinis , et ajouter une touche de personalité au bot (des petites blagues , des expréssion aléatoir ,.. )

Demo :

Pour tester directement le bot clique sur ce button:

Le chatBot avito va transformer votre éxperience utilisateur d’une navigation classique en une conversation plus engageante. Je vous laiss voir le video

Fonctionalités en cours de dévoloppement :

Pour donner une meilleur experience utilisateur, j’ai pensé à :

  • permettre de changer une seul critére au lieu de relancer tout depuis le début.
  • stocker les critére pour une ultérieur utilisation ,
  • permettre de créer une alerte du coup l’utilsateur sera informé soit à un interval de temps soit dés qu’une annonce est déposé .

Mon prochain Bot:

Etant un bon citoyen , je me suis déjà lancé sur la construction d’un bot pour l’administration et service public, le bot aura comme but d’informer et guider les utilisateur dans leur processus d’obtention de papier administrative , alors qui est partant ?.