Las ventajas que te ofrece Microsoft Azure y el mundo.NET

¿Cómo es un Bot por dentro? Detalles técnicos del Bot de la Universidad Cardenal Herrera CEU

bot_ceu

En éste artículo os voy a hablar de otro tema diferente al que estáis acostumbrados a leerme últimamente (que es el Internet de las Cosas), pero la ocasión la merece. Quiero contaros algo mucho más relevante y emocionante, y es algo en lo que he estado trabajando últimamente. Se trata, nada más y nada menos, de un Bot, pero no un Bot cualquiera, sino un Bot que va a ser implantado en la Universidad Cardenal Herrera CEU, y que está llamado a revolucionar desde ya mismo la relación y la comunicación entre los estudiantes y su centro, de forma bidireccional.

Lo que pretendo  es daros una visión a nivel técnico de cómo ésta hecho nuestro bot, de qué partes se compone y qué elementos necesita para realizar sus funciones.

Presente

Este bot se realizado con el Bot Framework de Microsoft, el cuál entre sus funcionalidades se encuentran la solución de dudas a futuros alumnos en diversas áreas o servicios, y la resolución de dudas o problemas a alumnos en diversos servicios y en las asignaturas de las que están matriculados. Además, el Bot permite a los alumnos dar de alta incidencias y solicitar tutorías con los profesores. Así pues, pasemos a ver cómo funciona y cómo se logra todo esto.


El Bot en sí mismo es una API App alojada en Azure, y se programa valiéndose del Bot Framework.

Bot Framework es independiente del canal, es decir, nuestro código y funcionalidad no depende de desde dónde estemos interactuando con él, y cada canal se encarga de la interpretación y renderización de los mensajes. Actualmente, el Bot tiene activados los canales de chat web, y de Skype, estando en desarrollo un canal directo personalizado para realizar un Web Part de SharePoint que se integre dentro de la propia intranet de CEU.

Existen otros canales como Telegram, Facebook Messenger, Microsoft Teams… que se podrían integrar en el futuro si fuera necesario.

El Bot sabe hablar inglés y francés además de castellano, y para ello se hace uso de la API de Microsoft Translator, mediante la cual detecta en qué idioma le estamos hablando cuando empezamos a interactuar con él, y traduce todos los mensajes en ambos sentidos.
Por otro lado, el árbol de decisión actual por el cual se rige el Bot a la hora de guiar y orientar al alumno es el siguiente:

Toda esta estructura está modelada y guardada en una Base de Datos SQL en Azure. Actualmente el Bot es capaz de reconocer tanto nuevos niveles como nuevas opciones dentro de Servicios y de Docencia, y en el futuro se dispondrá de una Aplicación Web MVC desplegada en Azure la cual permitirá realizar éstas modificaciones de forma rápida y sencilla a los administradores del Bot.
Por otro lado, la universidad UCH-CEU disponía de unos servicios propios, con los cuáles es capaz de interactuar con el Bot. Dichos servicios son Servicios SOAP con un Endpoint asmx publicado, contra el cual nos debemos autenticar, conectar y realizar nuestras solicitudes. Así, gracias a uno de éstos servicios, el Bot es capaz de dar de alta Incidencias o Solicitudes en los sistemas de CEU en nombre del alumno.

Esto se complementa con otro de los servicios, el cual nos proporciona información completa del alumno, como son sus datos personales, las titulaciones y asignaturas en las que está matriculado, así como los profesores que las imparten y sus horarios de tutorías. Gracias a esto, podemos ahorrarle al alumno la introducción de la mayoría de datos al dar de alta una Incidencia, ya que ya disponemos de ellos, así como también en el caso de la información de asignaturas, si el alumno necesita asistir a tutorías, podemos mostrarle los horarios de tutorías del profesor de dicha asignatura para que elija uno de ellos, y enviarle a dicho profesor una cita por correo electrónico para el siguiente día en ése horario.

Al final, en la mayor parte de los casos, el Bot proporcionará ayuda en base a una serie de FAQs que hayan sido introducidas en formato pregunta-respuesta, para lo que hacemos uso del servicio de Cognitive Services QnAMaker, así como también el Bot hace uso de LUIS en ciertos momentos para entender los mensajes del usuario y detectar sus intenciones.

Futuro

En el futuro, se espera que el Bot tenga muchas más funcionalidades. Lo más relevante, debido al impacto que puede tener y el valor diferencial que puede generar es que el Bot sea proactivo. Es decir, mediante un modelado de todos los datos de los que disponga y el análisis de las situaciones y los datos del alumno, el Bot será capaz de detectar situaciones de riesgo para el alumno (fracaso, abandono…), y anticiparse a ellas interviniendo y dialogando con el alumno ofreciéndole ayuda y soluciones.

Para ello, será necesario una infraestructura muy completa de Machine Learning, modelando toda la estructura compleja de variables que tienen influencia directa (y las posibles situaciones de riesgo). De esta manera, mediante el Machine Learning Studio de Azure podemos diseñar y entrenar algoritmos que serán capaces por sí mismos de, ante nuevas situaciones y datos, detectar patrones para avisar al Bot y que éste sea capaz de interactuar con el alumno y encauzar la situación.



También se espera del Bot que disponga en su ecosistema de herramientas que faciliten mucho su uso y expansión, como por ejemplo una aplicación web en Azure que permita a los profesores crear y dar de alta (así como modificar) los apartados de preguntas y respuestas (FAQs) de sus asignaturas, que como hemos dicho anteriormente harán uso internamente del servicio QnAMaker. Otro ejemplo será un servicio desatendido y automático que será capaz de leer la información de la asignatura (FAQs) introducida por los profesores en su herramienta actual (Blackboard), y en segundo plano realizar la migración de dicha información a su correspondiente servicio de QnAMaker enlazado con la asignatura. Todo esto permitirá que el contenido del cuál dispone el Bot a la hora de ayudar a los alumnos crezca de una forma fácil y sencilla, transparente a ellos, y sin necesidad en ninguno de los pasos de intervención de personal técnico ni interrupciones del servicio.
Además, el Bot no sólo deberá ser capaz de servir a los alumnos, sino que también deberá ser capaz de ayudar a los propios profesores, sobre todo en el apartado de creación y resolución de incidencias, así como de los futuros alumnos de la universidad, a los cuales podrá guiar en el proceso de admisión, llegándose incluso a poder completar una gran parte desde el propio chat con él.
Como hemos podido ver el Bot es una combinación de bastantes piezas y elementos, siendo la central y la más visible de ellas la API realizada con Bot Framework. Todas  trabajan en sintonía para proporcionar a la comunidad  UCH-CEU un servicio innovador y revolucionario hoy en día, y con unas grandes perspectivas de futuro.

mm

Sobre Adrián Del Rincón López

Ingeniero Superior de Telecomunicaciones por la Universidad Politécnica de Valencia. Desde hace varios años trabajo en el departamento de desarrollo de ENCAMINA. Sobre todo, me apasiona estar al tanto de lo último en tecnología, y si es en el mundo/ecosistema Microsoft y .NET, mejor que mejor. Además, también participo de las redes sociales, si quieres encontrarme, búscame con el usuario @adderin
Esta entrada ha sido publicada en Microsoft Bots. Enlace permanente.
ENCAMINA, piensa en colores