El arsenal del Microsoft Bot Framework
Introducción
Hoy en día la tendencia se enfoca en poder implementar soluciones estratégicas tecnológicas, tanto en la vida personal como en las tareas de las organizaciones, puesto que así podemos ahorrar tiempo y dinero. Para esto nacieron los bots, los cuales podemos recordar que son a ciencia cierta un software que sirve para comunicarse con el usuario, imitando un comportamiento humano.
Recordemos que esto lo comentamos en el artículo anterior:
“¿Qué es un bot?”
En este pequeño resumen conoceremos todo lo relacionado al Bot Framework, para ello comencemos sabiendo que es un servicio operado por Microsoft y un SDK, el cual permite construir, conectar, implementar y administrar bots inteligentes para interactuar naturalmente con nuestros usuarios en un sitio web, aplicación, etc.
Para los amantes de la programación que deseen construir un bot desde cero, susodicho framework proporciona el Bot Builder SDK para .NET y Node.js |
Como bien sabemos, los bots se pueden comunicar conversacionalmente utilizando cadenas de texto sencillas o tarjetas enriquecidas más complejas que pueden contener texto, imágenes y botones de acción, en donde estos proporcionen opciones determinadas al usuario. Además de brindar interacciones guiadas, podemos diseñar conversaciones en nuestro bot para que sean de forma libre, dando pauta a agregar intercambios de lenguaje natural, lo cual generaría una correlación de usuarios con bots de una manera natural y expresiva.
Ahora destaquemos que el Bot Framework es una de las tantas herramientas que Microsoft ofrece para crear un bot completo. Además, también contamos con: LUIS, Speech APIs, Azure y más, los cuales conoceremos más adelante.
Este nuevo framework tiene tres componentes principales: Bot Builder SDK, Bot Connector y Bot Directory. Vamos a ver uno a uno en qué consisten.
Bot Builder SDK
El Bot Builder SDK es una librería en NodeJS y C# que se incorpora al proyecto del bot y se encarga de gestionar toda la conversación sin necesidad de que sea implementada por parte del desarrollador.
El SDK proporciona características que hacen que las interacciones entre bots y usuarios sean mucho más simples. También incluye un emulador para depurar nuestros bots, así como un gran conjunto de bots de ejemplo que podemos utilizar como componentes básicos.
Bot Connector
El Bot Connector es un servicio online que permite conectar nuestro bot con una serie de servicios como Skype, Slack, u otros canales a través de una interfaz de API Rest implementada en el código del bot.
Para conectarlo no es necesario que el bot esté programado en C# o en NodeJs, con que siga el formato de mensajes de API Rest establecido y esté registrado es suficiente. A parte del envío y recepción de mensajes el Bot Connector implementa otras funcionalidades como:
Capacidad de almacenar el estado | Servicios de traducción | Telemetría, etc.
A continuación, podemos ver la forma en que nuestro bot se comunica con el Bot Connector permitiendo que la conversación sea universal independientemente de la plataforma o canal que se haya elegido. Prácticamente lo que sucede aquí es que la comunicación está basada en JSON.
La comunicación se realiza a través de REST por lo que todo lo que el usuario converse con el bot es convertido a JSON, dicho contenido JSON pasa por el servicio Bot Connector para posteriormente ser enviado al canal.
Bot Directory
Por último, tenemos al Bot Directory, el cual es un directorio público en donde se encuentran todos los bots registrados a través del Bot Connector.
Actualmente no acepta nuevos envíos, pero podemos probar, usar y agregar los que se encuentran publicados en los canales donde se encuentren adaptados.
Canales
Un canal es la conexión entre Bot Framework y aplicaciones de comunicación que interactúan naturalmente donde sea que hablen nuestros usuarios, desde mensajes de texto hasta el correo de Office 365 y otros servicios populares. Simplemente debemos de registrar nuestro bot, configurar los canales deseados y publicarlos en el Bot Directory.
Previamente podemos utilizar el inspector de canales para obtener una vista previa de si una característica particular que deseemos implementar es compatible con el canal al que nos dirigimos.
Los canales de Skype y de chat web se preconfiguran automáticamente.
Los canales que están actualmente disponibles son> Skype, Web, Correo electrónico, Facebook, Teams, Office 365, GroupMe, Kik, Slack, Telegram, Twilio y la integración de la aplicación de línea directa.
Construcción del bot
Como hemos visto a lo largo de esta entrega, contamos con dos sabores distintos de SDK:
Así mismo podemos utilizar Azure Bot Service, el cual, en resumidas cuentas, es un entorno completo creado especialmente para el desarrollo de bots. Con este podemos desarrollar un bot, conectarlo, probarlo, implementarlo y administrarlo desde nuestro navegador web sin necesidad de un editor de código.
Una de las ventajas que posee, es que nos permite acelerar el desarrollo de bots con cinco plantillas de bot que podemos elegir cuando estemos por empezar a crear un bot. Aunado a esto podemos modificar aún más dicho bot utilizando el editor de Azure en el navegador o ya sea en un entorno de desarrollo integrado (IDE), como Visual Studio y Visual Studio Code.
Resumen
El comprender los conceptos básicos del Bot Framework aquí descritos nos ayudara a crear bots que brinden las características que los usuarios necesitan.
Resumiendo todo lo anterior, tengamos en cuenta siempre la página oficial de Microsoft Bot Framework, en donde encontraremos toda la información necesaria respecto a los bots, tanto si ya tenemos uno construido y queremos conectarlo con otras aplicaciones, tanto como si aún no.