
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.
Business in a box.
Descubre nuestras soluciones.
Habla con nuestro equipo de ventas
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 obtener un comportamiento realmente poderoso 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 en la 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 perritos calientes. Configuraremos un flujo en Flows, el cual recibirá imágenes de los usuarios y decidirá si han enviado un perrito caliente 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 utilizando este tutorial: https://cloud.google.com/functions/docs/quickstart-console. Como 'Trigger' elige activación HTTP, 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 probarlo 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 el Google Vision API. Para comenzar, siga los pasos 1-4 de este tutorial: https://cloud.google.com/vision/docs/quickstart-client-libraries. En el tutorial activarás el Vision API y crearás una cuenta de servicio para usarlo.
Ahora regrese a la función en la nube que creó. Active “Variables de entorno, redes, tiempos de espera y más” y en el archivo “Cuenta de servicio” elija la cuenta de servicio VisionAPI que acaba de crear. Ahora podemos acceder al Vision API dentro de nuestra función.

Ahora cambiemos el código. En la pestaña "Package.json", inserte este código. Añadirá la biblioteca de Google Vision API como una dependencia para su función.
En la pestaña "Index.js" actualice 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 queda al menos 1 etiqueta después de filtrar, eso significa que encontramos un hot dog en la imagen.
Para entender cómo funciona Google VisionAPI y cómo se ve la respuesta, consulte su documentación, https://cloud.google.com/vision/docs
Después de eso, despliegue la nueva versión de nuestra función. Para probarla desde su navegador, encuentre cualquier imagen de un hot dog y guarde su URL. Ahora vaya a la URL de su función (insertando la dirección correcta para su función) https://su-dirección-de-función.cloudfunctions.net/HotDogOrNot?url=url_a_la_imagen
y reemplace “url_a_la_imagen” por una URL de la imagen encontrada. Si hay un hot dog 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 Tablero de Bird 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 la página de flujo, donde deberás elegir tu canal de Telegram como desencadenante, en nuestro caso es “Hotdog”. Por favor añade 2 pasos: “Obtener variables” y “Responder a mensaje de canal”.
Dentro del paso “Obtener 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 GoogleClound. En el campo URL inserta la URL de tu función https://your-function-address.cloudfunctions.net/HotDogOrNot
y llena todos los demás campos como se muestra en la imagen de "Contenido del paso Obtener variables".
Y dentro del paso “Responder a mensaje de canal” responderemos al cliente con un mensaje que contiene la respuesta de sí o no. Para ello inserta en el campo "Responder con mensaje" el siguiente texto "¿Hotdog en la imagen? {{isHotDog}}".


Si tienes algún problema para construir 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 chatbot, que verifica las imágenes que envían los clientes. Para hacerlo más bonito, agreguemos algunos pasos más como se muestra a continuación:

Si tienes algún problema para construir 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.