
Flows est un puissant moteur d’automatisation par glisser-déposer pour créer des flux de communication. Nous l’avons initialement conçu comme une solution sans code, mais nous avons constaté que de nombreux utilisateurs pouvaient obtenir un comportement très puissant en écrivant un peu de code pour des cas d'utilisation spécifiques. Ces morceaux de code peuvent être à l'intérieur de Flow Builder, ou ils peuvent être des fonctions cloud tierces comme les fonctions AWS Lambda ou les fonctions Google Cloud.
Ceci est une simple démonstration utilisant GoogleCloud Functions et Flows pour faire de la reconnaissance d'image sur une image envoyée sur Telegram.
Flows et au-delà
En tant que développeur de Flows, je me demande souvent qui sont nos utilisateurs, pourquoi ils utilisent Flows, et ce dont ils ont besoin pour atteindre leurs objectifs ; puis, quelles fonctionnalités nous devons implémenter pour mieux servir ces utilisateurs.
Flows est un puissant moteur d'automatisation par glisser-déposer pour créer des flux de communication. Nous l'avons initialement conçu comme une solution sans code, mais nous avons découvert que de nombreux utilisateurs pouvaient obtenir des comportements vraiment puissants en écrivant du code pour des cas d'utilisation spécifiques. Ces morceaux de code peuvent être à l’intérieur de Flows, ou ils peuvent être des fonctions cloud tierces comme des fonctions AWS Lambda ou Google Cloud Functions.
Un cas d'utilisation intéressant : Reconnaissance d'images
Pour un exemple court et amusant, je vais vous montrer comment implémenter une application qui reconnaît les hot-dogs. Nous allons configurer un flow dans Flows, qui recevra des images des utilisateurs et décidera s'ils ont envoyé un hot-dog ou non.
Pour beaucoup de nos clients, ce type de reconnaissance d'image peut être très puissant. Imaginez que vous gériez un service de livraison et que vous souhaitiez vérifier automatiquement les livraisons réussies. Similaire à ce que je vais vous montrer, vous pourriez utiliser des données de localisation, des photos de colis, et même des signatures de destinataires pour créer un flow de vérification dans Flows.
Un plan pour le succès
Configuration de la Google Cloud Function
Tout d'abord, nous devons configurer une fonction cloud. Pour commencer rapidement, créez une fonction cloud en utilisant ce tutoriel : https://cloud.google.com/functions/docs/quickstart-console. Comme 'Déclencheur', choisissez le déclencheur HTTP, environnement d'exécution : Node.js 10, et dans le champ du code source, insérez le fragment de code. C'est un code simple qui vérifie si la requête contient du code JSON et répond par oui ou non.

Ensuite, vous devrez déployer cette fonction. Pour la tester sur Google Cloud Platform, suivez les étapes du tutoriel.
Pour tester depuis votre navigateur, allez à l'URL suivante en insérant l'adresse spécifique de votre fonction :
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
devrait renvoyer {“isHotDog”: true} et l'adresse https://your-function-address.cloudfunctions.net/HotDogOrNot
devrait renvoyer {“isHotDog”: false}.
Bon travail! Vous avez configuré une fonction cloud google. Maintenant, nous devons rendre notre fonction cloud plus intelligente.
Configuration de l'API Google Vision
Pour le rendre plus intelligent, ajoutons la reconnaissance d'images. À cette fin, nous utiliserons le Google Vision API. Pour commencer, suivez les étapes 1 à 4 de ce tutoriel : https://cloud.google.com/vision/docs/quickstart-client-libraries. Dans le tutoriel, vous activerez la Vision API et créerez un compte de service pour l'utiliser.
Revenez maintenant à la fonction cloud que vous avez créée. Activez « Variables d'environnement, réseau, délais et plus » et dans le fichier « Compte de service », choisissez le compte de service VisionAPI que vous venez de créer. Nous pouvons maintenant accéder à la Vision API à l'intérieur de notre fonction.

Modifions maintenant le code. Dans un onglet « Package.json », insérez ce code. Cela ajoutera la bibliothèque Google Vision API en tant que dépendance à votre fonction.
Dans l'onglet "Index.js", mettez à jour le code existant avec l'extrait de code suivant.

Quelle est la différence par rapport à la version précédente ? Nous avons ajouté une requête à VisionAPI, qui retourne les ‘labels’ qu'il a trouvés sur l'image. Ensuite, nous filtrons ces labels par description : si cela contient « hot dog » et si cela a plus de 60% de confiance dans ce label. S'il reste au moins 1 label après filtrage, cela signifie que nous avons trouvé un hotdog sur l'image.
Pour comprendre comment fonctionne Google VisionAPI et à quoi ressemble la réponse, consultez leur documentation, https://cloud.google.com/vision/docs
Ensuite, déployez la nouvelle version de notre fonction. Pour le tester depuis votre navigateur, trouvez n'importe quelle image de hotdog et enregistrez son URL. Accédez maintenant à l'URL de votre fonction (en insérant l'adresse correcte pour votre fonction) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
et remplacez le « url_to_image » par une URL de l'image trouvée. S'il y a un hotdog dans l'image, la page retournera {“isHotDog”: true}.
Connectons maintenant cette fonction à Flow Builder.
Créer un flux dans Flows
Connectez-vous au tableau de bord Bird ou inscrivez-vous pour un compte si vous n'en avez pas.
Si vous êtes nouveau sur Flows et que vous n'avez aucun canal configuré, vous devrez vous rendre sur la page de configuration des canaux et choisir de configurer le canal Telegram. J'ai choisi Telegram pour cette démo parce qu'il est facile et rapide à configurer.

Maintenant, vous avez un canal que nous pouvons utiliser dans Flows. Allez à la page Flows, créez un nouveau flux personnalisé et choisissez le déclencheur de canal "Telegram".

Vous serez redirigé vers une page de flux, où vous devriez choisir votre canal Telegram comme déclencheur, dans notre cas c'est "Hotdog". Veuillez ajouter 2 étapes : "Fetch variables" et "Reply to channel message".
À l'intérieur de l'étape "Fetch variables", nous appellerons notre fonction cloud et récupérerons la réponse dans la variable "isHotDog" qui contiendra "true" ou "false" comme réponse de la fonction GoogleClound. Dans le champ URL, veuillez insérer l'URL vers votre fonction https://your-function-address.cloudfunctions.net/HotDogOrNot
et remplir tous les autres champs comme sur l'image "Fetch variable step content".
Et à l'intérieur de l'étape "Reply to channel message", nous répondrons au client avec un message contenant la réponse oui ou non. Pour cela, insérez dans le champ "Reply with message" le texte suivant "Hotdog sur l'image ? {{isHotDog}}".


Si vous avez des difficultés à créer le flux, vous pouvez utiliser l'extrait suivant :

Pour le tester, envoyez une image à votre bot Telegram.
Jusqu'à présent, ça a l'air cool ! Nous avons créé un petit chat bot, qui vérifie les images envoyées par les clients. Pour le rendre plus joli, ajoutons quelques étapes supplémentaires comme indiqué ci-dessous :

Si vous avez des difficultés à créer le flux, vous pouvez utiliser l'extrait suivant :
Résultats


Bien que ce soit un exemple amusant, nous pensons que ce type de fonctionnalité peut être très utile pour nos utilisateurs.
Si vous souhaitez plus de fonctionnalités comme celle-ci intégrées dans Flows, écrivez à notre équipe de support pour nous le faire savoir.