CommitStrip Bot

logo

Comment nous avons créé le premier bot de bande dessinée avec CommitStrip

Chaque jour (ou presque), nous publions sur CommitStrip une planche BD d’humour. Enfin, d’humour, ça dépend pour qui. Si vous n’êtes pas développeur, codeur ou sysasdmin, certaines planches risquent de vous laisser de marbre. Mais si vous travaillez de près ou de loin du monde du web ou de l’IT, il y a fort à parier que vous retrouviez vous ou vos collègues dans ces strips quotidiens !

Car oui, nous publions (pratiquement) tous les jours ! Et ce depuis plus de 4 ans, avec bientôt 1000 strips au compteur ! De quoi perdre passer de longues heures sur le blog.

On dit « sur le blog », mais en réalité, ce n’est pas tout à fait ce que disent les chiffres.

La réalité, c’est que la majorité de nos lecteurs lisent nos strips depuis Facebook, Twitter, Google+. Car il est plus facile de pousser notre contenu là où sont les lecteurs plutôt que de faire venir nos lecteurs sur le site. C’est ce qui nous a poussé à créer le CommitBot sur Facebook Messenger.

En effet, Facebook a récemment ouvert ses APIs pour faciliter la création de chatbots sur Messenger (et bientôt Instagram/Whatsapp?) et Facebook étant l’une de nos principales sources de trafic, nous avons immédiatement réfléchi à un ChatBot Messenger. Après quelques jours de R&D et de tests, nous avons décidé d’adapter le concept « chatbot » à CommitStrip et TADA, le CommitBot est né !

Voici donc les principales fonctionnalités que nous avons intégré sur le CommitBot ainsi que quelques détails techniques :

  1. Le meilleur strip du mois

Le bot récupère le strip le plus partagé des 30 derniers jours et le renvoie sous forme d’image, directement lisible sur Messenger (pas besoin de sortir du chat!).

1. Meilleure strip du mois

  1. Les 5 derniers strips

Le bot consulte l’API CommitStrip et remonte les 5 derniers strips publiés sous la forme d’un carrousel de liens. Nous avions ici privilégié le contenu sous forme de liste pour pouvoir rapidement « scanner » les dernieres strips, et, ça tombe bien, nous avons justement à notre disposition une miniature pour ce genre d’interface !

2. 5 derniers strips

  1. Recherche par mots-clés ou phrase

La fonctionnalité la plus remarquable d’un point de vue technique. La recherche par mots-clés.

3. Keywords

En effet, il ne s’agit pas d’une simple recherche basique, mais d’une recherche basée sur le moteur d’Algolia, une startup française de hosted cloud search as a service. Au préalable, nous venons nourrir le moteur d’Algolia avec les textes des strips (extrait des images grâce à la Google Cloud API Vision) ainsi qu’avec les données de popularité issues de Facebook et Twitter.

Au final, quand un utilisateur cherche un mot-clé, nous lui renvoyons donc le strip la plus pertinente selon le texte et la popularité.

Note : Nous avons également intégré l’API Wit.ai pour extraire des mots-clés des longues phrases que l’utilisateur écrirait !

Un schéma valant mieux que des mots :

Schema1

  1. Menu persistant

Tout récemment, Messenger a ajouté le possibilité d’accéder à toutes les fonctionnalités du bot grâce à un menu déroulant paramétrable via l’API et accessible constamment en bas à gauche. Très efficace !

4. Menu

  1. Discussion avec un humain

Enfin, si l’utilisateur souhaite chatter avec un humain, le bot ouvrira une nouvelle fenêtre de chat avec un autre compte. En effet, nous avons constaté qu’il était très difficile pour un administrateur de gérer un compte mêlant discussions bot et discussions humaines. Nous avons donc décidé de consacrer le compte CommitStrip au chatbot, et de déplacer les conversations humaines sur un autre compte.

5. Talk human

En cours de développement : la possibilité de s’abonner et de recevoir quotidiennement ou hebdomadairement les derniers strips. Cette fonctionnalité doit être conçue finement pour éviter tout effet de lassitude, au risque d’être bloqué une bonne fois pour toute !

Il ne vous reste plus qu’à tester le CommitBot en vrai sur m.me/wearecoders ou cherchant « CommitStrip » dans l’application Messenger.

Bon chat !