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