
Flows es un motor de automatización potente de arrastrar y soltar para crear flujos de comunicación. Inicialmente lo concebimos como una solución sin código, pero descubrimos que muchos usuarios podían lograr un comportamiento realmente poderoso escribiendo algo de código para casos de uso específicos. Estos fragmentos de código pueden estar dentro de Flow Builder, o pueden ser funciones en la nube de terceros como funciones de AWS Lambda o Google Cloud Functions.
Esta es una demostración simple usando GoogleCloud Functions y Flows para hacer reconocimiento de imagen en una imagen enviada por Telegram.
Flujos y Beyond
Como desarrollador de Flows, a menudo pienso quiénes son nuestros usuarios, por qué usan Flows y qué necesitan para lograr sus objetivos; y luego, qué características necesitamos implementar para servir mejor a esos usuarios.
Flows es un potente motor de automatización de arrastrar y soltar para crear flujos de comunicación. Inicialmente lo concebimos como una solución sin código, pero descubrimos que muchos usuarios podían lograr comportamientos realmente poderosos escribiendo algo de código para casos de uso específicos. Estos fragmentos de código pueden estar dentro de Flows, o pueden ser funciones de nube de terceros como funciones de AWS Lambda o Google Cloud Functions.
Un caso de uso interesante: Reconocimiento de Imágenes
Para un ejemplo corto y divertido, te mostraré cómo implementar una aplicación que reconoce hot dogs. Configuraremos un flujo en Flows, que recibirá imágenes de los usuarios y decidirá si enviaron un hotdog o no.
Para muchos de nuestros clientes, este tipo de reconocimiento de imágenes puede ser muy poderoso. Imagina que diriges un servicio de entrega y quieres verificar automáticamente las entregas exitosas. Similar a lo que voy a mostrar, podrías usar datos de ubicación, fotos de paquetes e incluso firmas de destinatarios para crear un flujo de verificación en Flows.
Un plan para el éxito
Configurando la Google Cloud Function
Primero, necesitaremos configurar una función en la nube. Para comenzar rápidamente, crea una función en la nube usando este tutorial: https://cloud.google.com/functions/docs/quickstart-console. Como 'Trigger' elige HTTP trigger, entorno de ejecución: Node.js 10, y en el campo de código fuente inserta el fragmento de código. Es un código simple, que verifica si la solicitud contiene código JSON y responde sí o no.

A continuación, necesitarás implementar esta función. Para probarla dentro de Google Cloud Platform, sigue los pasos del tutorial.
Para probar desde tu navegador, ve a la siguiente URL insertando la dirección específica de tu función:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
debería devolver {“isHotDog”: true} y la dirección https://your-function-address.cloudfunctions.net/HotDogOrNot
debería devolver {“isHotDog”: false}.
¡Buen trabajo! Has configurado una función de Google Cloud. Ahora necesitamos hacer que nuestra función en la nube sea más inteligente.
Configurando el Google Vision API
Para hacerlo más inteligente, añadamos reconocimiento de imágenes. Para este propósito utilizaremos la Google Vision API. Para empezar, sigue los pasos 1-4 de este tutorial: https://cloud.google.com/vision/docs/quickstart-client-libraries. En el tutorial, activará la Vision API y creará una cuenta de servicio para utilizarla.
Ahora regresa a la función en la nube que creaste. Alterna “Variables de entorno, redes, tiempos de espera y más” y en el archivo “Cuenta de servicio” elige la cuenta de servicio VisionAPI que acabas de crear. Ahora podemos acceder a la Vision API dentro de nuestra función.

Ahora vamos a cambiar el código. En una pestaña “Package.json”, inserta este código. Añadirá la biblioteca Google Vision API como dependencia a tu función.
En la pestaña "Index.js" actualiza el código existente con el siguiente fragmento de código.

¿Cuál es la diferencia en comparación con la versión anterior? Añadimos una solicitud a VisionAPI, que devuelve las ‘etiquetas’ que encontró en la imagen. Luego filtramos estas etiquetas por descripción: si contiene “hot dog” y si tiene más del 60% de confianza en esa etiqueta. Si hay al menos 1 etiqueta restante después del filtrado, significa que encontramos un hotdog en la imagen.
Para entender cómo funciona Google VisionAPI y cómo se ve la respuesta, consulta su documentación, https://cloud.google.com/vision/docs
Después de eso, despliega la nueva versión de nuestra función. Para probarlo desde tu navegador, busca cualquier imagen de un hotdog y guarda su URL. Ahora ve a la URL de tu función (insertando la dirección correcta para tu función) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
y reemplaza “url_to_image” con una URL de la imagen encontrada. Si hay un hotdog en la imagen, la página devolverá {“isHotDog”: true}.
Ahora conectemos esta función a Flow Builder.
Creating a flow in Flows
Inicia sesión en el Bird Dashboard o regístrate para obtener una cuenta si no tienes una.
Si eres nuevo en Flows y no tienes ningún canal configurado, necesitarás ir a la página de configuración de canales y elegir configurar el canal de Telegram. Elegí Telegram para esta demostración porque es fácil y rápido de configurar.

Ahora tienes un canal que podemos usar en Flows. Ve a la página de Flows, crea un nuevo flujo personalizado y elige el desencadenante del canal "Telegram".

Serás redirigido a una página de flujo, donde deberías elegir tu canal de Telegram como desencadenante, en nuestro caso es "Hotdog". Por favor, añade 2 pasos: "Fetch variables" y "Reply to channel message".
Dentro del paso "Fetch variables" llamaremos a nuestra función en la nube y recuperaremos la respuesta en la variable "isHotDog" que contendrá "true" o "false" como respuesta de la función Google Cloud. En el campo URL, por favor inserta la URL de tu función https://your-function-address.cloudfunctions.net/HotDogOrNot
y llena todos los demás campos como en la imagen del contenido del paso "Fetch variable step".
Y dentro del paso "Reply to channel message" responderemos al cliente con un mensaje que contenga la respuesta de sí o no. Para eso inserta en el campo "Reply with message" el siguiente texto: "¿Hotdog en la imagen? {{isHotDog}}".


Si tienes algún problema construyendo el flujo, puedes usar el siguiente fragmento:

Para probarlo, envía una imagen a tu bot de Telegram.
¡Hasta ahora se ve genial! Creamos un pequeño chat bot, que verifica las imágenes que envían los clientes. Para hacerlo más bonito, añadamos algunos pasos más como se muestra a continuación:

Si tienes algún problema construyendo el flujo, puedes usar el siguiente fragmento:
Resultados


Aunque este es un ejemplo divertido, creemos que este tipo de funcionalidad puede ser muy útil para nuestros usuarios.
Si deseas más características como esta integradas en Flows, escribe a nuestro equipo de soporte para hacérnoslo saber.