28 marzo, 2019

Azure Bot Framework

Sharing is caring!

Dentro de la amplia gama de servicios computacionales que ofrece la plataforma de Azure, se encuentran aquellos que tienen la capacidad de procesar información estructurada y no estructurada, en forma de conversación ya sea en texto o multimedia, llamados Bots.

Sin embargo, ¿Cuál es la razón de que estos servicios estén disponibles en un Framework? Existen varias, las cuales pueden ser importantes para los desarrolladores, las cuales pueden ser:

  • Un framework o marco de trabajo permite la modificación de estructuras genéricas para crear aplicaciones o subsistemas específicos,  permitiendo ahorrar tiempo y esfuerzo.
  • Usar estructuras genéricas permite el re-uso de software el cual asegura un mayor grado de calidad  en el producto y rápida implementación, debido al uso de componentes probados y validados con anterioridad.
  • El usar estructuras o componentes sin ninguna modificación (grano grueso) permite una rápida implementación.
  • El usar y modificar estructuras acorde a requerimientos específicos (grano fino) permite mayor calidad y funcionalidad.
  • El uso de frameworks reduce costos.

Por su parte, Azure Bot Framework pertenece al marco de trabajo tipo empresarial debido a que integra y apoya necesidades específicas, que en este caso, es el desarrollo de aplicaciones de software que requieran o se apoyen de servicios computacionales que procesen lenguaje natural.

Sin embargo, a pesar de las características y beneficios mencionados anteriormente, para poder trabajar con un framework correctamente se requiere que el usuario tenga conocimientos previos con estas herramientas de desarrollo rápido.

También, y debido a la inherente complejidad de trabajar con un framework, esta herramienta ofrece recomendaciones, documentación y un blog como material de apoyo para el desarrollador.

Características

Como parte de sus diferenciadores en el mercado, este framework tiene las siguientes características (Microsoft, 2018):

  • Poder ofrecer implementaciones aceleradas. Para ello, se apoya de Botbuilders SDKs para crear servicios de conversación para diferentes tipos de situaciones o finalidades, los cuales están  documentados y con ejemplos en el repositorio de software de Github. Por ejemplo, en CSharp se encuentran ejemplos de bots para usar o depurar sobre comercio, empresa, informativo o de IoT´s. El lector interesado puede consultar la siguiente liga: https://github.com/Microsoft/BotBuilder  para mayor información.
  • Proveer capacidades cognitivas al usar los servicios de visión, knowledge, language, speech search de forma conjunta. El lector interesado puede consultar Microsfot Azure AI Platformpara mayor información de estos cinco servicios.
  • Poder interactuar con otras plataformas, ya sea de Microsoftu otros importantes servicios de canales de comunicación en la Web. Dichas plataformas son (Microsoft, Azure Bot Framework, 2018):
  • Cortana.  Es una herramienta de asistencia en el sistema operativo Windows 10, ya sea en equipo de escritorio o en dispositivos móviles. Puede recibir instrucciones mediante voz o texto. Permite realizar para búsquedas en Internet, crear citas en una fecha y tiempo determinado, activar alarmas o recordatorios, y también, el tener compatibilidad con el navegador Edge de Microsoft Bing, por solo mencionar algunos casos. El lector interesado puede ingresar a la siguiente liga: https://www.microsoft.com/es-mx/windows/cortana para mayor información.
  • Microsoft Teams. Permite comunicación entre personas vía texto con aquellos que tengan los servicios de Microsoft Office. Puede crear juntas online, en vivo (broadcast), o también,  conferencias en donde sólo se maneje audio. Tiene interoperabilidad de video en la nube. Permite comunicaciones con dispositivos inalámbricos. Y también, puede personalizar la gama de servicios acorde al rol y necesidades del usuario. El lector interesado puede buscar en la siguiente liga: https://products.office.com/en-us/microsoft-teams/group-chat-software para mayor información.
  • Skype. Es una plataforma de comunicación mediante Internetla cual puede ser mediante voz, texto, e inclusive, imágenes y video. Se puede usar en computadoras de escritorio, dispositivos móviles, Xbox, Apple Watch y Andriod Wear. El lector interesado puede ingresar a la siguiente liga: https://www.skype.com/es/home/ para mayor información.
  • SlackPermite unificar las comunicaciones en un entorno de trabajo, administrar las comunicaciones y planificar eventos. Puede integrar apps como Google Drive, Dropbox y Asana. Permite hacer colectivo el conocimiento, y también, dichos servicios son provistos con estándares a nivel mundial. Por su parte, el lector interesado en profundizar en este servicio puede ingresar a la siguiente liga: https://slack.com/intl/es/lp/two?cvosrc=ppc.google.d_ppc_google_mx_es_brand-hv&cvo_creative=257450625255&utm_medium=ppc&utm_source=google&utm_campaign=d_ppc_google_mx_es_brand-hv&utm_term=slack&cvosrc=ppc.google.slack&cvo_campaign=&cvo_crid=257450625255&Matchtype=e&utm_source=google&utm_medium=ppc&c3api=5523,257450625255,slack&gclid=EAIaIQobChMIuM7Mt5yJ3AIVQZRpCh1RUQZ-EAAYASAAEgIc6vD_BwE&gclsrc=aw.ds&dclid=CJDzts-cidwCFVCKaQodk9sHTw  para mayor información.
  • Facebook Messenger. Esta plataforma ofrece servicios de medios sociales en línea. Dichos medios pueden contener texto, imágenes, video, audio, o también, video llamadas. Por su parte, el servicio de Messenger permite mandar mensajes de forma instantánea, independiente de la plataforma donde se use. También, puede ser empleado en dispositivos móviles como que tengan sistema operativo  Andriod iOS. Finalmente, dentro de sus capacidades distintivas, permite: mandar dinero, acceso a juegos en línea, identificar la ubicación (sólo en dispositivos móviles), y estar en contacto con negocios  o marcas que estén dadas de alta en esta plataforma. Para mayor información, ingrese a la siguiente liga: https://www.messenger.com/ .
  • GroupmeServicio que permite intercambiar mensajes (Short Message Service “SMS”) a nivel grupal (chat) a través de Internet,  mediante dispositivos móviles que usen sistema operativo como iOS, Andriod y Windows Phone. El lector interesado pueden consultar la siguiente liga: https://groupme.com/en-US/ para mayor información.
  • KikOfrece comunicación entre dispositivos Mac y Android. Permite conversaciones 1 a 1, uno a varios o con un bot. Ofrece una interfaz simple con diferentes tipos de escritura. Tiene en su disposición bots para responder preguntas y ofrecer consejos. También, ofrece juegos en línea y permite establecer comunicación con otros usuarios mediante kik codes. Ver Figura 1.
  • Telegram. Servicio de comunicación enfocado en apps, los cuales pueden estar en dispositivos móviles tales como: Android, iPhone, iPad o Windows Phone. Provee un servicio en la nube de comunicación distribuido, seguro y gratuito, con la infraestructura para respaldar gran cantidad de información. Tiene alcance en zonas remotas. Puede coordinar el intercambio de información de un grupo de hasta 100000. Sincronizar los dispositivos. Mandar documentos de cualquier tipo. También, provee servicio de encriptación para la información usada, y destruir datos o mensajes con base en un tiempo determinado (timer). Finalmente, puede almacenar datos en la nube y poder construir herramientas especializadas mediante su API. El lector interesado puede consultar la siguiente liga:https://telegram.org/ para mayor información.
  • Text/SMSCapacidad de mandar mensajes textos cortos dispuestos en cualquier dispositivo móvil.
  • Skype for BusinessEste servicio derivado de Skypeestá orientado hacia la interacción en tiempo real para agilizar procesos de producción o colaboración en línea a través de una pantalla compartida,  mensajes instantáneos o grabación de reuniones. Tiene una pizarra electrónica la cual puede trabajar con Microsoft Office,permitiendo que varios usuarios puedan trabajar en un mismo documento en tiempo real. Las invitaciones para los colaboradores pueden ser mediante URL. Es multiplataforma Puede calendarizar reuniones. Permite almacenar información de hasta un terabyte. Tiene una fiabilidad del 99.9%. Puede ser trabajada mediante diferentes plataformas como: computadora de escritorio, MaciPhone, iPad Andriod. El lector interesado puede consultar el siguiente sitio: https://www.skype.com/es/business/ para mayor información.

Escenarios

Esta sección, se muestra los principales escenarios (casos)  donde se puede implementar los bots más usados en la industria, así como la sugerencia del cómo implementarlos. Cabe mencionar que, cada escenario muestra una arquitectura diferente del cómo integrar los servicios para cada fin. Para los usuarios con experiencia o conocedores de arquitecturas basadas en servicios no representa mayor problema. Sin embargo, para el lector nuevo o interesado en conocer los puntos principales de este tipo de arquitectura, se recomienda leer el documento Microsoft AI Platform en la sección de escenarios populares para identificar los puntos principales de este tipo de desarrollo a manera de ayuda.

El primer escenario es el Commerce chatbot. Este tipo de bot se puede implementar principalmente en bancos, agencias de viaje y entretenimiento. Su arquitectura se muestra en la Figura 2.

En esta figura, se muestran enumeradas la estructura y el orden de los servicios de la siguiente forma:

  1. El cliente puede interactuar mediante voz, algún dispositivo móvil, un app o a través de un navegador Web.
  2. Azure Active Directory. Este servicio autentifica y administra las identificaciones (ID) de clientes externos de forma eficiente (B2C), y también, expone propia y correctamente la información necesaria suficiente durante la interacción del servicio de forma segura.
  3. Azure Bot Service. Permite el uso del bot apropiado para dicha interacción.
  4. Language Understanding. Permite el procesamiento de información no estructurada para brindar soporte y procesamiento al bot.
  5. Speech API. Este servicio agrega funcionalidad a las respuestas e interacción realizadas del usuario con el app  lenguaje natural, e inclusive, mediante voz.
  6. SQL Service. Guarda las interacciones realizadas del usuario con el app para su procesamiento futuro.
  7. Azure Insights (Application Insights). Finalmente, este servicio ayuda a obtener ideas o realizar análisis para refinar la interacción o corregir el funcionamiento del bot como proceso de retroalimentación. También, permite tomar acciones adecuadas a través del APM (Application Performance Management) de forma rápida y eficiente.

El segundo escenario permite agregar funcionalidad al servicio de Cortana, como puede ser: mostrar una lista de servicios, su disponibilidad y su duración. Otra funcionalidad puede ser si una persona está ocupada en una fecha,  notificar de esta situación, y finalmente, crear una cita en caso de estar libre. El usuario interesado puede consultar la siguiente liga: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-scenario-cortana-skill?view=azure-bot-service-3.0 para mayor información. La arquitectura para crear una cita se muestra en la figura 3.

En este escenario, los servicios se encuentran ordenados de la siguiente forma:

  1. El usuario hace una petición a Cortana mediante una computadora de escritorio o algún dispositivo móvil.
  2. Mediante el ingreso de voz o texto, Cortana recibe la petición de realizar una cita para un servicio.
  3. Esta petición se procesa de forma lógica en el calendario.
  4. Acto seguido, se puede obtener una lista de posibles opciones para dicha cita.
  5. Con base en esta información, el usuario selecciona la fecha que más le convenga acorde a sus necesidades.
  6. Finalmente, se puede agregar el servicio de Application Insights descrito anteriormente para agregar mejoras al servicio con base en su uso.

El tercer lugar se encuentra el escenario de  Information chatbot, el cual sirve para responder preguntas definidas o abiertas derivadas en una base de conocimiento o FAQ (Frecuently Asked Questions), gna maker, una base de datos, e inclusive,  residentes en Azure Search. Su arquitectura se muestra en la figura 4

En esta figura, se muestra el orden de los servicios e interacciones de la siguiente manera:

  1. Un usuario o empleado ejecuta la aplicación del bot.
  2. Azure Active Directory. Este servicio descrito anteriormente, permite autentificar la identidad del usuario.
  3. El usuario puede conocer qué tipo de preguntas pueden ser contestadas (alance y fronteras).
  4. Cognitive Services (QnA maker). Provee información de un FAQ al ineractuar con un bot. También,  puede buscar dentro de una base de conocimiento más grande mediante Azure Search.
  5. Como parte de una interacción común,  el usuario define con mayor precisión una petición refinada y válida.
  6. Azure Search. Este servicio busca información en la red, refinar búsquedas con base en criterios definidos por la empresa, organizar los resultados, y también, encontrar información oculta proveniente de las bases de datos.
  7. Application Insights. Permite agregar retroalimentación a un servicio de conversación descrito anteriormente.

El cuarto escenario es  un Enterprise chatbot. Este tipo de arquitectura permite que un bot proporcione información concreta y oportuna de los clientes de una empresa, permitiendo que  sus empleados tengan un fácil acceso a estos datos cada cuando sea necesario. Su arquitectura se muestra en la figura 5.

En esta figura se muestran los servicios dispuestos de la siguiente manera:

  1. En empleado puede ingresar a la aplicación desde cualquier dispositivo, dentro de la empresa que tenga acceso a dicha aplicación. También, el ingreso de la información puede ser en forma de texto o mediante voz.
  2. Azure Active Directory. Servicio anteriormente descrito, permite validar la identidad del empleado como medida de seguridad.
  3. Graph, Office 365. Estos dos servicios permiten administrar los perfiles del usuario así como sus cambios, flujos de trabajo por parte de la empresa,  y también, calendario de citas para poder convertirlos en documentos para el óptimo manejo de la información. También, permite el acceso a múltiples servicios en la nube de Microsoft 365  en caso de requerirlo.
  4. Dynamics CRM (Dynamycs Client Resource Managment). Este servicio usa como entrada el calendario del servicio anterior (3) mostrando la información de los clientes en dicho periodo de tiempo. Con esto, se acota la información solicitada para un mejor manejo.
  5. La información obtenida es regresada al empleado que la solicitó para que la despliegue u ordene acorde a sus necesidades.
  6. Applications insights. Este servicio anteriormente descrito, permite agregar un mecanismo de mejora constante del botpara su mejora constante.

El último escenario es IoT chatbotEsta arquitectura permite controlar de forma sencilla dispositivos mediante comandos de voz o texto. Su organización se muestra en la figura 6.

En esta figura, la arquitectura de servicios se encuentra de la dispuesta de la siguiente forma:

  1. El usuario puede acceder a la aplicación mediante algún dispositivo móvil.
  2. Acto seguido,  el usuario puede realizar alguna petición. Por ejemplo, prender las luces.
  3. Esta petición es manejada por el servicio de IoT Devices para ingresar y realizar la petición que se está ejecutando.
  4. Se regresa una notificación del estado de la ejecución ingresada al usuario.
  5. Application Insights permite depurar el funcionamiento del bot de forma constante.

Cabe mencionar, que en varias arquitecturas se pueden usar un conjunto de servicios aparte de los principales descritos en cada arquitectura para poder brindar un mejor rendimiento.

Casos de éxito

Finalmente, como demostración de la calidad de los servicios de Azure, el sitio muestra varios casos de éxito que muestran la eficacia y eficiencia de sus servicios en diferentes necesidades crecientes en la industria.

Uno de estos casos es el de Daisuke Kezuka, administrador general de Travel Business Navitime  Japón, el cual documentan que se llevó solo una semana de desarrollo del chatbot, y un mes para implementarlo. Con esto, comentan que redujeron su lanzamiento del producto a la mitad del tiempo, dando como resultado estar a la vanguardia.

Referencias

Interactive, K. (2018). Kik. Obtenido de Kik app: https://www.kik.com/

Microsoft. (2018). Azure Bot Framework. Obtenido de Bot Framework: https://dev.botframework.com/

Microsoft. (2018). BotBuilder. Obtenido de Azure BotBuilder: https://github.com/Microsoft/BotBuilde

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *