Workshop Serverless : comment créer un chatbot avec Google Cloud Functions et Firebase

D2SI_Blog_Image_ServerlessConf_Google.jpg

Les 14 et 15 Février 2017 Paris a accueilli pour la première fois en France la ServerlessConf, conférence communautaire dédiée aux architectures serverless. La journée du 14 Février était consacrée aux workshops et à l'utilisation pratique de solutions AWS (construire une plateforme vidéo Serverless), Google Cloud Platform et Open FaaS. Cet article traitera de l'atelier organisé par Google Cloud Platform, et durant lequel nous avons créé un chatbot et d'autres services, en utilisant Firebase, Google Cloud Functions et Diagflow.

Firebase, un backend as a service

Firebase est une plateforme cloud axée “Backend As a Service”, qui permet de créer des applications sur une multitude de plateforme (iOs / Android / Web). Firebase supporte de nombreux langages (durant ce workshop, nous avons utilisé Node.js). La plateforme permet de fournir énormément d’analytiques applicatifs, et propose un service de fonction as a service “Cloud Functions” qui une fois utilisé avec d’autres produits Firebase permet de créer des architectures pour applications web et mobile, sans se soucier du coté management serveur.

Et les workshop ?

L'atelier a été animé par Bret McGowen, Guillaume Laforge et Frank van Puffelen. La première partie traitait des Chatsbots, des interactions avec Dialogflow, Google Assistant et des avancées technologique proposée par Google Assistant en terme de machine learning et de contexte dans les conversations. Puis une présentation rapide de Cloud Fonction, de ses caractéristiques, cas d’usages et des interconnexions avec les autres services Firebase. Ces exercices sont disponibles en ligne, et si le sujet vous intéresse vous pouvez reproduire le tutoriel chez vous :

Let's put it all together ! Lors de la première démo nous avons créé un projet de Chatbot avec Dialogflow et Cloud Functions pour nous permettre de tester le moteur de reconnaissance Google Assistant.

Nous avons ensuite créé un chat web en utilisant les services de Firebase : une base de données en temps réel Firebase Realtime Database, du stockage pour les images envoyées sur le chat avec Cloud Storage for Firebase et la gestion de l’authentification avec Firebase Authentication.

Ensuite nous avons implémenté à notre chat web de fonctionnalités serverless Firebase Cloud Functions pour nous notifier de l'ajout d'un nouveau membre sur le chat, ou de l’arrivée d’un nouveau message quand le chat web n’est pas ouvert. Et nous avons ajouté avec l’API Cloud Vision de la modération sur les images envoyées sur chat pour filtrer les images choquantes en floutant le rendu de l’image.

L’exercice était présenté et guidé par le biais d’un tutoriel très clair mais très intéressant (cf ci-dessus pour les liens vers les URLdes tutoriels).

Mes impressions sur Firebase

Je n’avais jamais utilisé Firebase ou Google Cloud Platform par le passé, cet atelier était donc une première pour moi. L’interface Firebase et de Dialogflow (Anciennement Api.ai) suivent les lignes directrices en terme de design ( Material Design ) que Google utilise pour l’ensemble des ses produits et avec ses interfaces Android et G suite. Un beau travail sur l’UI/UX quant à la disposition des ses menus et de l’affichage des différentes informations.

L’utilisation de la console d'administration est très guidée on s’y retrouve très facilement et il nous est facile de réaliser une ébauche fonctionnelle et de la mettre en ligne rapidement en quelques commande avec le CLI fourni par Firebase. On pourrait se limiter à la facilité d’utilisation et au minimalisme de l’interface et se dire qu’il y a peu de fonctionnalités mais en creusant dans l’interface il semble y avoir de nombreuses options disponibles pour répondre aux différents besoins.