Funcionamiento de Azure Bot Service y SDK Framework

Todos sabemos lo que es un Bot pero, ¿entendemos realmente cómo funcionan?

En la actualidad existen muchos proveedores que nos facilitan herramientas, códigos de ejemplo y SDK’s para realizar el desarrollo de estos bots que nos facilitan la tediosa tarea de realizar un desarrollo completo de un Bot.

Para explicar cómo funciona hemos elegido Azure Bot Service y su SDK Bot Framework , este se basa en peticiones HTTP y una administración de estados.

Pero antes de entrar en materia hay que tener claro los siguientes conceptos:

  • Actividad
  • Turno
  • Contexto de activación
  • Diálogos

Actividad

Cada interacción entre el usuario y el bot se representa como una actividad, esta se puede intercambiar entre el usuario y un bot.

Turno

Del mismo modo que en una conversación de forma general realizamos turnos para hablar, en un bot se establece como turno la entrada del usuario y la respuesta inmediata a esa entrada. A esto lo llaman contexto de turno.

Contexto de activación

Proporciona información sobre la actividad, remitente, receptor y otros datos necesarios para procesar la actividad. Además, puedes agregar información durante el turno en las distintas capas del bot y proporciona el mecanismo para enviar actividades salientes.

Diálogos

Se utilizan para administrar una conversación, esta puede ser de larga o corta duración y realiza una parte de la conversación o un subproceso completo. Además, puede durar uno o varios turnos de la conversación.

Azure Bot Service es una API REST y un protocolo de actividad para el modo que el usuario final puede interactuar mientras que el SDK se basa en esta API para abstraer el servicio y podernos centrar en la lógica de la conversación.

Las peticiones llegan al servicio por POST con la información de la actividad, esta puede ser un JSON para C# o Express / restify para Node.js. Un componente integrado deserializa el JSON creando el objecto actividad y se entrega mediante una actividad de proceso creando un contexto de turno.

Ahora con este contexto de turno podemos realizar la respuesta al usuario mediante alguno de los métodos que proporciona este contexto.

Para generar bots que mantengan conversaciones significativas, que aporten un valor añadido, cómo si vuelves a hablar con el bot que este te reconozca, se necesitan estados, para ello deberemos utilizar un almacén de datos ya sea en memoria, Blob Storage o Cosmos DB.

De esta forma podremos administrar los estados de forma automática en la capa de almacenamiento, existen diferentes estados que se agrupan en:

  • Estado de usuario
  • Estado de conversación
  • Estado de conversación privada

El de usuario siempre está disponible indistintamente de la conversación con el bot, mientras que el de conversación se centra en dicha conversación y no estaría disponible en otro contexto.

Con ellos podemos jugar para que el usuario se sienta querido y reconocido que al final es lo que busca un cliente, sentirse único.

Gracias a los SDKs y servicios proporcionados nos es fácil “realizar tareas cotidianas o repetitivas de forma automatizada sin necesidad de intervención por parte de una persona”.

 

Guia introduccion MuleSoft AnyPoint