Un Chatbot, ou « agent conversationnel » est un agent qui dialogue avec un utilisateur sur Internet dans le but de l’aider dans une démarche administrative ou pour une explication sur un service. Cet agent est doté d’une Intelligence Artificielle (IA) qui aide l’utilisateur en répondant à ses questions.
Certaines entreprises se servent de ces Chatbots pour aider leurs clients à utiliser l’interface de leur site. Avec ses 900 millions d’utilisateurs sur Messenger, Facebook est un acteur majeur mais ce n’est pas le seul à remettre le bot au goût du jour. Microsoft a également annoncé sa plateforme de bots en 2016 pour Skype. Kik, Slack ou encore Telegram ont aussi leurs propres systèmes de chat à base d’intelligence artificielle. Google serait également en train de plancher sur le sujet pour proposer une solution encore plus pertinente que l’assistant de Google Now.

Créons ensemble un Chatbot
Imaginons que vous possédez un site, et que vous voulez apporter un support technique à l’utilisateur de votre service. Pour cela, nous allons mettre en place un Chatbot qui sera capable de répondre automatiquement aux questionnements de l’utilisateur à partir des messages privés (DM) de Twitter.
Pour fonctionner, il faut un programme capable d’interpréter – en entrée – un texte, puis – en sortie – de répondre intelligemment à l’entrée. Il faut donc une base de données de discussions intelligentes. Pour cela, nous allons utiliser API.AI, un gros site racheté par Google en Septembre 2016 qui fait exactement ce que l’on veut faire, et, la cerise sur le gâteau, c’est gratuit et disponible en Français !
API.AI possède une base de données impressionnante puisque le service se sert des conversations intelligentes d’autres utilisateurs, c’est la communauté qui fait grandir la base de données, l’intelligence artificielle est là !
Le service est simple à utiliser, il suffit de s’inscrire, de configurer son Chatbot, de lui entrer les phrases par défaut, d’entrer également des « intentions » (phrases pour lesquels le Chatbot répondra), et de saisir de multiples réponses.
Inscription sur API.AI
Rendez-vous tout d’abord sur api.ai puis créez-vous un compte en vous connectant avec votre compte Google par exemple.

Créer une application Twitter
Rendez-vous sur apps.twitter.com puis cliquez sur « Create New App » pour créer une nouvelle application Twitter (attention, vous devrez au préalable confirmer votre compte Twitter avec votre numéro de téléphone).
Remplissez le formulaire en saisissant un nom d’application, une courte description, et le site Internet de votre application (ajoutez ici l’URL du compte Twitter), pour l’URL de « Callback », laissez le champ vide. Terminez l’opération en cochant l’accord de développeur Twitter et en cliquant sur « Create your Twitter application ».

Une fois l’application Twitter créée, rendez-vous dans l’onglet « Permissions », puis cochez le bouton radio « Read, Write and Access direct messages » pour donner à votre application la permission de lire et d’écrire des Tweets pour vous, ainsi que gérer vos messages privés (utile ici pour notre Chatbot, puisqu’il devra répondre aux DM). Terminez l’opération en cliquant sur le bouton « Update Settings ».
Ensuite, allez dans l’onglet « Keys and Access Tokens », puis cliquez sur le bouton « Create my access token » en bas de page pour générer une clé d’accès à votre compte pour l’application.
Notez précieusement dans un fichier texte les « credentials » (clés d’accès) de votre application, à savoir le « Consumer Key » (API Key), le « Consumer Secret » (API Secret), le « Access Token », et le « Access Token Secret ».
Ces informations seront nécessaire à API.AI pour que votre Chatbot communique sur Twitter, Facebook Messenger, etc…
Créons notre premier Chatbot sur API.AI
Une fois que vous avez créé votre compte sur API.AI, connectez-vous au site, et créez un nouvel agent « Create new agent ». Renseignez le type d’agent que vous souhaitez créer (public ou privé), donnez-lui un nom et une description, donnez-lui également une base de quelques mots en précisant s’il s’agît d’un agent pour une alarme, ou bien d’un bot tout simplement. Précisez aussi son langage de compréhension (ici en Français) et son fuseau horaire.

Une fois que vous avez renseigné ces informations, cliquez sur « Save » pour créer votre agent conversationnel.
Interface de API.AI
L’interface se compose de trois parties, la première, à droite, est un menu où vous pouvez retrouver vos agents conversationnel, et les différentes sections utiles à la configuration de votre Chatbot. La deuxième partie, au centre, est la page sur laquelle vous êtes. La dernière partie, à gauche, est nécessaire aux essais de votre Chatbot, vous pouvez discuter avec lui à tout moment.

Vous l’avez peut-être remarqué, quelques mots sont déjà présent, en Anglais, même si vous avez sélectionnez la langue Française pour votre Chatbot. Le site étant encore en BETA, ils ne proposent pas encore une base de discussions en Français. Il va falloir éditer chaque intentions (intents) pour les traduire en Français.
Une intention est un mot reconnu par le Chatbot, et chaque intention comprend différentes réponses. Par exemple :
- Intention « bonjour » (phrase d’entrée)
- Réponse possible 1 : « Bonjour, comment vas-tu ? »
- Réponse possible 2 : « Bonjour, comment allez-vous ? »
- Réponse possible 3 : « Hello, comment ça va ? »
- Réponse possible 4 : « Hello, comment vas-tu ? »
Vous l’avez compris, plus il y a de réponse possible, plus l’intention est rendue intelligente.
Intentions par défaut
Par défaut, si l’intention n’est pas comprise par notre Chatbot, il est possible de lui faire dire quelques phrases aléatoire, pour cela, rendez-vous dans la section « Intents » puis cliquez sur « Default Fallback Intent » (intentions par défaut).
Dans « Responses », commencez par supprimer les intentions ajoutées par défaut par API.AI, puis saisissez les votre en Française. Par exemple, dites à l’interlocuteur que vous n’avez pas compris le sens de sa phrase, etc… Essayez de ne pas fermer la discussion, laissez à l’utilisateur la possibilité de continuer à discuter.
Rendre notre Chatbot intelligent
Plus vos clients parlerons avec votre Chatbot, plus il récupérera des phrases qu’il ne comprend pas forcément. Une section sur API.AI vous permet de voir quels sont ces mots incompris afin de leur assigner des intentions déjà créées ou non. Cela se passe dans la section « Training ».

Ici, le mot « bonjour » n’a pas été compris par le Chatbot, j’ai la possibilité de cliquer sur le mot incompris, et d’assigner une intention existante, ou bien d’en créer une nouvelle. Je vais donc créer l’intention (en exemple) vu plus haute dans cet article.

J’ai donc créé l’intention, avec comme mot reconnaissable « hello », « salut », et « bonjour ». Le Chatbot est maintenant capable de comprendre ces mots et de donner différentes réponses.
Complexifier la compréhension du Chatbot
Il est possible sur API.AI de stocker des variables grâce aux messages envoyés par les clients. Par exemple, si un client donne son âge ou son adresse email, le Chatbot doit être capable de répondre et ayant au préalable stocké son âge ou son email. A partir de là, il est également possible de faire appel à une action, que vous aurez développé sur votre serveur, comme clôturer la discussion si la personne est trop jeune, ou bien envoyer un email au client.

Ici, le texte compréhensible par le Chatbot est « J’ai xx ans ». Le Chatbot stock la variable ($age) de l’âge dans son action, et peut s’en resservir pour lui répondre, ici « Ah cool, vous avez $age ! ».
Intégration du Chatbot sur Twitter
Pour que notre Chatbot interagisse avec Twitter (comme prévu), il faut configurer API.AI avec les informations que vous avez relevé plus haut dans le tutoriel.
Rendez-vous dans la section « Integrations » puis activez l’intégration avec Twitter. Saisissez alors, le nom du compte Twitter, puis le « Consumer Key » (API Key), le « Consumer Secret » (API Secret), le « Access Token », et le « Access Token Secret ».

Si vous souhaitez héberger le Chatbot sur votre machine dédiée, cela est possible avec le script fourni par API.AI sur GitHub. Vous pouvez également le modifier pour y apporter des fonctionnalités supplémentaires, comme un délai de réponse, ajout d’emojis aléatoire dans vos réponses, etc…