Por Silvio Kucharski , Desarrollador en Fx2

 

Bot Framework

Es un framework que proporciona herramientas para compilar y probar bots inteligentes. Incluye un SDK modular y extensible para crear bots, así como herramientas, plantillas y servicios de inteligencia artificial relacionados.

¿Qué es un bot?

Es un software dedicado a la comunicación con las personas, simulando una conversación real. Un bot se dedica a la atención de solicitudes de las personas, como responder preguntas, realizar acciones, consultar recursos externos (como bases de datos o APIs), etc. Se pueden utilizar para tareas sencillas y repetitivas, como reservar una mesa en un restaurante, hacer seguimiento de paquetes (encomiendas), como también tareas más complejas que no requieran la intervención humana directa.

Los usuarios conversan con el bot utilizando diferentes canales (chat en una web, mensajes de texto, redes sociales, comandos de voz, etc). La conversación puede ser sencilla al estilo pregunta-respuesta, o también una conversación más sofisticada que proporciona acceso a servicios de forma más inteligente.

Estos bots han ganado popularidad en los últimos años, y son varias las ventajas de su implementación:

  • Hacen tareas repetitivas: pueden realizar la misma tarea una y otra vez sin cansancio, liberando a las personas para que hagan otras tareas.
  • Disponibilidad 24/7: siempre están en línea, no se ajustan a un horario de oficina.
  • Son capaces de resolver problemas sencillos, y si fuera necesario, pueden redirigir la conversación a una persona para que resuelva los casos más complejos.
  • Acercar materiales útiles al usuario, como manuales, preguntas frecuentes, etc.

El siguiente esquema muestra la vinculación del bot con las diferentes entidades asociadas.

El bot en sí, tiene capacidad para entender y procesar el lenguaje (ya sea escrito o hablado), proveer respuestas al usuario en lenguaje ameno y agradable, como también conectarse a fuentes de datos externas (archivos, bases de datos, bases de conocimiento, etc).

Una de las partes fundamentales son los diferentes canales, por los cuales se llega al bot. Estos canales son las plataformas en las cuales estará disponible el bot. Entre los más usados están MS Teams, Skype, Webchat, etc.

El tipo de entrada que recibe el bot, por lo general es texto, pero también podría recibir gestos o audios. Este ultimo caso se da en los dispositivos Alexa o similares; al fin y al cabo, son también bots que interactúan con el usuario a través de comandos de voz.

Bot Framework Composer

Es un entorno de desarrollo integrado (IDE), basado en Bot Framework SDK, que permite desarrollar, probar y publicar bots. La gran ventaja es su interfaz visual, cuyo objetivo es que sea potente e intuitiva para el desarrollador. Esta experiencia visual permite controlar mejor el flujo de la conversación, haciendo más fácil modelar la experiencia conversacional, como también acortar los tiempos de desarrollo. Al mismo tiempo, permite extender sus funcionalidades mediante acciones personalizadas que se desarrollan en lenguajes tradicionales, como C# o JavaScript.

En la imagen siguiente se pueden ver las principales partes que lo componen.

  1. Menú principal
  2. Panel de navegación
  3. Panel visual donde se crea el flujo de la conversación
  4. Disparador (trigger)
  5. Elementos de acción
  6. Panel de propiedades del elemento seleccionado
  7. Ejecución del bot

     

    Ventajas de usar Bot Composer

    • Crear bots de forma visual, haciendo más rápido el desarrollo y puesta en Producción.
    • Agilizar el desarrollo utilizando plantillas o crear un bot desde cero.
    • Crear bots en varios idiomas, e intercambiarlos según el contexto del usuario.
    • Agregar comprensión de lenguaje natural usando LUIS (servicio externo de Microsoft, disponible en Azure).
    • Crear múltiples respuestas para una misma situación, brindando respuestas más naturales y personalizadas haciendo la conversación más atractiva.
    • Probar el bot dentro de Bot Composer, ya que trae un web chat integrado.
    • Publicar bots directamente en Azure.
    • Conectarse a APIs externas, u otros bots.
    • Si las funciones básicas no son suficientes, se pueden ampliar mediante la creación de acciones personalizadas. Estas acciones requieren desarrollo por fuera de Bot Composer (en Visual Studio) y aportan potencia extra para escenarios más complejos.

Componentes principales

Dentro del Bot Composer, tenemos dos componentes principales que hacen funcionar el bot.

Diálogos (dialog). Es el punto de entrada principal del bot. Siempre hay un único dialogo principal, pero podemos definir múltiples diálogos adicionales, que sean hijos del principal. Si queremos desarrollar un bot de forma ordenada, deberíamos separar cada funcionalidad en un dialogo diferente.

Disparadores (triggers). Cada diálogo contiene uno o más disparadores o triggers. Éstos tienen una condición y acciones a ejecutar cuando se cumpla la condición establecida. Los disparadores se activan cuando se reconoce la intención del usuario, un evento dentro del diálogo, actividades (por ejemplo, un usuario se agregó a la conversación), etc. Dentro de las acciones, hay múltiples posibilidades a realizar, como enviar una respuesta al usuario, establecer variables internas, pedir información al usuario, hacer operaciones sobre datos, llamar a una API externa, y mucho más.

Fuentes:

https://docs.microsoft.com/es-es/azure/bot-service/bot-service-overview-introduction?view=azure-bot-service-4.0

https://docs.microsoft.com/en-us/composer/introduction?tabs=v1x