Sistemas inteligentes – Parte III – ¿Cómo construir un Asistente Inteligente?

In Blogfest, Data & Applied AI by Baufest

Recapitulemos: ya hemos mencionado las diferencias entre chatbot, asistente virtual y asistente inteligente, y expusimos las ventajas de este último grupo de chats sobre sus predecesores.

miércoles 28 - agosto - 2019
Baufest
Como construir un asistente inteligente

Recapitulemos: ya hemos mencionado las diferencias entre chatbotasistente virtual y asistente inteligente, y expusimos las ventajas de este último grupo de chats sobre sus predecesores.

Por otro lado, hemos detallado qué consideraciones debemos tener en cuenta al encarar un proyecto de construcción de un asistente inteligente y remarcamos que, antes de centrarnos en la solución técnica, debemos avanzar con un análisis sobre qué es lo que espera el usuario de nuestro futuro bot y cuáles son los flujos conversacionales que éste va soportar.
Por lo tanto, sólo nos queda despejar la pregunta final: ¿cómo puedo construirlo?

El desafío técnico hoy por hoy no está vinculado a tener que desarrollar modelos de redes neuronales o inteligencia artificial para gestionar las conversaciones, ya que existe una gran cantidad de herramientas y plataformas disponibles; más bien el desafío consiste en cómo integrarlas correctamente entre ellas y, a su vez, con nuestras aplicaciones y sistemas, para poder construir asistentes inteligentes de alto valor para nuestros clientes.

Similar a como desarrollamos aplicaciones, también debemos realizar un diseño técnico, elegir una plataforma, construir una arquitectura, seleccionar qué componentes vamos a utilizar e integrar, optar por un lenguaje de programación para los componentes de código y crear una base de datos para guardar la información de base para una correcta ejecución del chat.

Si bien existen diferentes plataformas disponibles en el mercado, en este artículo nos vamos a centrar en las que ofrece Microsoft, como parte de sus servicios Cloud.

En primer lugar, para poder construir la base de lo que será nuestro chat automatizado, recomendamos la utilización de la plataforma Azure Bot Services y los componentes de desarrollo disponibles en Bot Builder SDK. Por un lado, Azure Bot Services permite crear y gestionar fácilmente asistentes inteligentes desde el portal de Azure y, por el otro, con Bot Builder SDK, se pueden crear fácilmente las interfaces de código que implementan el procesamiento de cada uno de los diálogos que va a mantener la persona y el chat.

En la instancia anterior, podemos decir que apenas contamos con un chatbot, con mayores o menores características, pero sin un agregado de IA que permita ofrecerles una mejor experiencia de uso a nuestros consumidores. El siguiente paso que recomendamos para hacer evolucionar nuestro chatbot en un asistente virtual, es la incorporación de LUIS, un servicio basado en Machine learning que permite integrar procesamiento de lenguaje natural en nuestros bots. LUIS requiere que se diseñe y construya un modelo del lenguaje utilizado por nuestros usuarios, y permite además su entrenamiento para poder detectar cuáles son las intenciones que buscan transmitir las personas en un mensaje determinado (el verbo), y cuáles son las entidades (los sustantivos) que son relevantes para la intención de dicho mensaje.

Finalmente, para poder contar con un asistente inteligente, debemos dar otro paso e integrar nuestro bot con Azure Cognitive Services, un conjunto de API´s desarrolladas por Microsoft que permiten incorporar algoritmos inteligentes a nuestras aplicaciones, otorgando la capacidad de ver, oír, hablar e interpretar las necesidades de los usuarios. Poseen aprendizaje automático mediante redes neuronales y por lo general no requieren de un equipo especializado en inteligencia artificial para poder implementarlas.
De esta forma, podremos dotar a nuestro bot de capacidades cognitivas que mejoren notablemente la experiencia de usuario, garantizar una mejor interpretación de sus pedidos y otorgar respuestas más precisas a sus necesidades.

A modo de resumen, presentaremos a continuación un diagrama de alto nivel con las integraciones de los diferentes componentes de la arquitectura estándar de chat automatizado propuesto por Microsoft.

Stack tecnológico recomendado por Microsoft
Figura 1: Stack tecnológico recomendado por Microsoft

Adicionalmente, en los links provistos en los anteriores párrafos, se podrá encontrar mucha más información con el detalle técnico suficiente sobre cómo realizar la implementación y las integraciones necesarias. Tratar de abordarlas todas en el artículo excedería el alcance del mismo, que sólo apunta a presentar los lineamientos base para poder crear correctamente asistentes inteligentes.

Por último, vale la pena remarcar que este tipo de sistemas suele ser de evolución constante luego de su primera implementación. Consideremos que, si hicimos un buen trabajo previo, nuestros usuarios van a demandar nuevas funcionalidades a medida que lo utilicen más y más y, asimismo, el medio utilizado para comunicarse, es decir el lenguaje, es dinámico y cambia de forma permanente, por lo que también nuestros modelos de entendimiento deberán evolucionar con el tiempo para poder reconocer nuevas expresiones.

No obstante, desde el punto de vista empresarial, contar hoy por hoy con un asistente inteligente correctamente implementado e integrado a sus aplicaciones de negocio, otorga enormes beneficios de cara a los clientes, a la vez que permiten optimizar el uso de recursos y potenciar a los empleados para que realicen otro tipo de actividades, impulsando lo que llamamos Transformación Digital & Customer Centric Strategy.

Autor:
Ing. Ariel Martín Bensussán.

Microsoft Practice Manager