En este artículo vamos a explorar un caso donde combinemos la detección de objetos en imágenes utilizando Tensor Flow (Object Detection API), y la interacción mediante una arquitectura de bots (Telegram platform).
El desafío es crear un bot que pueda interactuar con imágenes en una conversación, para informar al usuario las frutas que contiene su desayuno. Utilizando esta información se pueden entregar muchas variaciones de análisis en el futuro, por el momento solo una prueba de concepto.
Vamos a proponer una integración de TensorPhotoXRay (nuestra solución para detección de etiquetas en imágenes, artículo previo) para detectar frutas en las imágenes y vamos a crear una integración con un Telegram Bot (proyecto appengine-telegram-bot).
Esta es la solución terminada y funcionando:
Vamos a describir los elementos básicos para utilizar esta arquitectura.
Creación del bot en telegram: usted puede conocer más sobre esta opción en este link oficial. *Elemento Importante de este paso, obtener el token para interactuar la plataforma de telegram.
Creación de la solución Telegram Bot: vamos a crear un bot basado en App Engine (proyecto appengine-telegram-bot). *Este es el método de análisis para los mensajes desde Telegram y la llamada al método de detección de imágenes.
Para esta implementación, nosotros utilizamos 50% de confianza en la detección de etiquetas. Aquí encontrarás el proyecto completo para desplegar.
Desplegar la solución de Telegram Bot: en este ejemplo, la solución está diseñado para Google App Engine traditional environment. Debe prestar especial atención a estos elementos.
- Telegram Token: para obtener esta información y para crear el bot en la plataforma de telegram, debe interactuar con BotFather. Aquí tiene todas las instrucciones oficiales.
- Url de integración con TensorPhotoXRay: una vez desplegada la solución, necesitará la url para realizar el análisis. Recuerde que tiene un nuevo método con este formato:
rooturl/photobot/photourl
- rooturl: app engine url
- photourl: url para analizar la imagen
Configuración del Hook para Telegram: usted debe desplegar la solución en App Engine. Cuando finalice esta acción, usted tendrá este formato de urls.
rooturl/fruit_analysis
- rooturl: app engine url
Desplegar la solución de TensorPhotoXRay: esta actividad la puede realizar siguiendo estas instrucciones. Recuerde que esta solución utiliza App Engine Flexible Environments.
He realizado una modificación sobre el proyecto original para agregar un nuevo método que devuelve solo un arreglo de etiquetas sobre la detección de la imagen.
Este es el método:
Último paso, vincular Telegram con nuestro Bot desarrollado
Ahora, que empiece la diversión…
- Para que el bot se enlace con nuestra solución en App Engine, debemos establecer el hook. *(solo acceda a el link (rooturl/set_webhook) y valide la configuración, con este mensaje “config ok”)
rooturl/set_webhook
- rooturl: app engine url
Ahora, podemos interactuar con un componente que permite colaborar en nuestras opciones de comida, en un futuro sugerir y aprender de una forma muy flexible.
Hay varios elementos para evolucionar y mejorar, pero esta simple solución muestra un interesante camino lleno de nuevas oportunidades en la interacción con usuarios.