PROTOTIPO DE CHATBOT ORIENTADO A LA GESTIÓN DE CITAS PARA EL ENTENDIMIENTO DE DATOS BRINDADOS POR UN USUARIO. CAROLINA MARIA LONDOÑO PACHECO Trabajo de grado para optar al título de Ingeniera de Sistemas y Computación Isis Bonet Cruz Doctora en Ciencias de la Computación UNIVERSIDAD EIA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN ENVIGADO 2022 La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. CONTENIDO pág. 1. PRELIMINARES ....................................................................................................... 11 1.1 Planteamiento del problema .............................................................................. 11 1.2 Objetivos del proyecto ....................................................................................... 12 1.2.1 Objetivo General ......................................................................................... 12 1.2.2 Objetivos Específicos ................................................................................. 12 1.3 Marco de referencia ........................................................................................... 12 1.3.1 Antecedentes ............................................................................................. 12 1.3.2 Marco teórico .............................................................................................. 14 1.1.1 Inteligencia artificial (IA) .............................................................................. 14 1.1.2 Machine learning ........................................................................................ 14 1.1.3 Chatbot ....................................................................................................... 15 1.1.4 Lenguaje de programación ......................................................................... 16 1.1.5 Framework ................................................................................................. 16 2. METODOLOGÍA ....................................................................................................... 17 3. PRESENTACIÓN Y DISCUSIÓN DE RESULTADOS ............................................... 20 3.1 Identificación de las falencias y cualidades de los chatbots ............................... 20 3.2 Estudio de chatbots en el mercado colombiano ................................................. 24 3.3 Descripción de los requisitos funcionales y no funcionales ................................ 24 a. Requisitos funcionales .......................................................................................... 24 b. Requisitos no funcionales ..................................................................................... 25 La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3.4 Diagramas UML ................................................................................................. 26 3.5 Análisis del lenguaje de programación, Librerías y dataset a usar ..................... 26 3.6 Comparativa de chatbots en el mercado versus crear uno propio...................... 27 3.7 Investigacion y selección del framework para la interfaz de usuario .................. 29 3.8 Integracion del framework y el modelo .............................................................. 30 3.9 Pruebas y validaciones al prototipo ................................................................... 34 4. CONCLUSIONES Y CONSIDERACIONES FINALES .............................................. 36 5. REFERENCIAS ........................................................................................................ 37 6. ANEXOS .................................................................................................................. 41 La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. LISTA DE TABLAS pág. Tabla 1 Cuadro comparativo de plataformas para crear chatbots tomada de Kommunicate (DEVASHISH MAMGAIN, 2019) ...................................................................................... 16 Tabla 2 Cuadro comparativo de los chatbots en el mercado. ........................................... 24 Tabla 3 Tabla de requisitos funcionales del proyecto. ...................................................... 25 Tabla 4 Tabla de requisitos no funcionales del prototipo .................................................. 25 Tabla 5 Comparación de lenguajes de programación mediante su uso conocido. (IBM Cloud, 2021; Snaplogic, 2020) ......................................................................................... 26 Tabla 6 Cuadro comparativo de los diferentes frameworks disponibles para Python ....... 29 La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. LISTA DE FIGURAS Figura 1 Metodologia de KeyReply para la creación de chatbots. (KeyReply, 2019) ........ 17 Figura 2 Metodología a usar en el desarrollo del prototipo. .............................................. 18 Figura 3 Descripción de las capas del modelo propio ...................................................... 28 La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. LISTA DE ANEXOS Anexo 1 Encuesta sobre chatbots en el mercado colombiano ......................................... 41 Anexo 2 Diagrama de casos de uso ................................................................................ 41 Anexo 3 Diagrama de mapa de proceso .......................................................................... 42 Anexo 4 Diagrama de estado........................................................................................... 43 Anexo 5 Codigo del prototipo ........................................................................................... 43 Anexo 6 Encuesta de satisfaccion y validacion del chatbot .............................................. 43 La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. GLOSARIO Requisitos funcionales: Son declaraciones de los servicios que prestará el sistema, en la forma en que reaccionará a determinados insumos. Requisitos no funcionales: Son las propiedades del sistema: rendimiento, seguridad, disponibilidad. Repositorio: Almacenamiento virtual de un proyecto. Función: Un bloque de código reutilizable que se puede ejecutar muchas veces dentro de tu programa. Frontend: Es la parte de un sitio web que interactúa con los usuarios, por eso decimos que está del lado del cliente. Backend: Es la parte que se conecta con la base de datos y el servidor que utiliza dicho sitio web. API: Son mecanismos que permiten a dos componentes de software comunicarse entre sí mediante un conjunto de definiciones y protocolos. HTML: Define el significado y la estructura del contenido web. CSS: Es un lenguaje que maneja el diseño y presentación de las páginas web, es decir, cómo lucen cuando un usuario las visita. JavaScript: Es un lenguaje de programación o de secuencias de comandos que te permite implementar funciones complejas en páginas web. Vista: Función de Python que toma una petición y retorna una respuesta, la cual pueden ser una redirección o una actualización de los contenidos HTML. Template: Contiene la parte estática del HTML que Django va a utilizar de manera dinámica. Open Source: El software open source es un código diseñado de manera que sea accesible al público: todos pueden ver, modificar y distribuir el código de la forma que consideren conveniente. Información tomada de:(Atlassian, 2019; AWS, 2022; Bustamante, 2021; Chapaval, 2017; Django, 2022; Medium, 2018; Mozilla, 2022b, 2022a; RedHat, 2019; Santos, 2022) La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. RESUMEN Hoy en día todos debemos interactuar con diferentes chatbots que nos prestan un servicio, sea la consulta de información, la asignación de una cita, respuestas de preguntas recurrentes, entre otras. Sin embargo, muchos de estos programas mantienen las mismas dificultades desde hace ya varios años, además de que en Colombia estos no suelen ser muy completos, debido a esto se realizará un prototipo de chatbot enfocado en la asignación de citas que brinde una mejora al entendimiento del lenguaje humano. Con el fin de lograr esto, se iniciará por una investigación con respecto a los programas que existen actualmente en el mercado, además de una encuesta a diferentes personas sobre su interacción con chatbots. Según la información se hará el correcto análisis, comparación y finalmente diseño y documentación de los requisitos necesarios del proyecto. De la misma manera, se definirá el lenguaje más efectivo para la creación del algoritmo junto con un framework que permita generar una interfaz web básica para interactuar con el bot. Una vez se hayan completado todos estos procesos, se validará el funcionamiento del prototipo y se expondrá a diferentes usuarios para observar su comportamiento. Con todo esto lo que se busca es presentar un prototipo de chatbot que utiliza inteligencia artificial para el entendimiento del lenguaje humano por medio de las intenciones que pueden ser detectadas en el mensaje. Palabras clave: Chatbot, Inteligencia Artificial, NLP La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. ABSTRACT Nowadays we all have to interact with different chatbots that provide us with a service, whether it is the consultation of information, the assignment of an appointment, answers to recurring questions, among others. However, many of these programs maintain the same difficulties since several years ago, besides that in Colombia these are usually not very complete, because of this a chatbot prototype focused on the assignment of appointments that provides an improvement to the understanding of human language will be made. In order to achieve this, we will start with an investigation regarding the programs that currently exist in the market, in addition to a survey to different people about their interaction with chatbots. According to the information, the correct analysis, comparison and finally design and documentation of the necessary requirements of the project will be made. In the same way, the most effective language for the creation of the algorithm will be defined along with a framework that allows to generate a basic web interface to interact with the bot. Once all these processes have been completed, the prototype will be validated and exposed to different users to observe its behavior. With all this, the aim is to present a chatbot prototype that uses artificial intelligence to understand human language by means of the intentions that can be detected in the message. Keywords: Chatbot, Artificial Intelligence, NLP La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. INTRODUCCIÓN La inteligencia artificial es uno de los campos que más valor agregado aporta a las organizaciones, debido a que aumenta la eficiencia en los diferentes procesos que está involucrado el usuario, estimula la productividad de sus empleados, mejora la experiencia de usuario y disminuye el error. Un ejemplo de esto es Harley Davidson, que aumentó sus ventas en 2,930% al implementar una plataforma de marketing con IA (Patel, 2019). Por esto, aquellas empresas que no adquieren o manejan este tipo de herramientas son las que se están quedando obsoletas en el mercado. Es por esto que los chatbots son de los principales servicios basados en IA que se están empleando en tareas repetitivas y de estructura fija, tal como responder preguntas que se vuelven recurrentes, manejo de agendas y cronogramas, designar tareas, sistematizar trabajos o asignar citas. Por otro lado, a pesar de que hoy en día existen muchos desarrollos a nivel global de robots y en específico de chatbots, se siguen manejando muchos errores que, a pesar del paso del tiempo y las diferentes investigaciones, no han encontrado una solución absoluta a estos. Todos estos fallos se encuentran divididos en dos categorías. La primera categoría abarca los descritos por los usuarios, que tratan temas como la cantidad de respuestas “inútiles” o “basura” que da el programa, junto con su incapacidad muchas veces de cumplir su trabajo, dejando a los usuarios sin respuesta, enviándolos a el apartado de respuestas a preguntas frecuentes (Garcia, 2018). En la otra categoría tenemos los expresados por los desarrolladores o conocedores del tema, quienes hacen referencia a la incompetencia del bot a la hora de comprender y procesar el lenguaje humano, junto con sus diferentes sutilezas, las cuales cambian en función de la región o lugar del mundo (Tsai, 2018). En este documento se explicará más a fondo este problema, se plantearán los objetivos para dar una posible solución a la problemática, se desarrollara un marco teórico en el cual contempla todos los componentes de los objetivos, se explicara la metodología a seguir y se presentarán los resultados de dicha metodología aplicada al proyecto. Y por último se presentarán las conclusiones y recomendaciones que se tienen para proyectos futuros. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 1. PRELIMINARES 1.1 PLANTEAMIENTO DEL PROBLEMA El primer chatbot llamado “ELIZA” fue desarrollado durante 1964 por Joseph Weizenbaum, tratándose de un programa basado en algoritmos capaces de entender y catalogar textos, evidenciando la facilidad de una máquina para entender las bases del lenguaje humano (Cerdas Mendez, 2017). Desde ese momento se inició toda una rama dentro de la Inteligencia Artificial (IA) enfocada en bots capaces de reconocer contenido específico en todo tipo de escritos, imágenes, videos y en general, cualquier clase de información. Con la rápida proliferación de aplicativos web y posteriormente móviles, no se tardó en implementar bots como herramientas para obtener información de los usuarios, puesto que pasó a ser un desarrollo característico, dada la innovación y tecnología que traía, adicional a su valor agregado, ya que simulaba la interacción humana mediante conversaciones (Feng, 2018). A pesar de todas las características y funcionalidades que tenía, no se logró el impacto esperado, ya que las fallas de entendimiento por parte de las máquinas se volvieron constantes y recurrentes. Uno de los mayores problemas se dio por la falta de entrenamiento y variedad de vocabulario, por tanto, si el mensaje que se enviaba a la IA no tenía la palabra clave con la que había sido desarrollada, era incapaz de comprender la tarea que debía realizar (Hirschberg & Manning, 2015). Actualmente, uno de los ámbitos en los que más se emplea este sistema es dentro de la gestión de citas, ya sea para un hospital, un banco, un consultorio y demás instituciones prestadoras de servicio. Con este tipo de servicio se logra una atención las 24 horas del día sin incurrir en un costo extra, atender de manera simultánea a diferentes personas. Además, el almacenamiento de la información y demás tareas de las que se encarga la IA son casi instantáneas (Dilmegani, 2021b), por lo que constantemente están en desarrollo todo tipo de mejoras que permitan aumentar la experiencia de usuario, así como la recolección de la información. En Colombia, según la revista Portafolio, el uso de chatbots han aumentado mucho, influenciado por la popularidad de estos programas y a raíz de la situación sanitaria del momento. Por ejemplo, el uso del chatbot de Tigo aumentó un 380% entre febrero y junio de (Portafolio, 2020). Debido al poco desarrollo de la tecnología del Natural Language Processing (NLP), los usuarios deben realizar múltiples intentos para que el chatbot comprenda directamente el mensaje (BotSide, 2017). Adicional a esto, se tiene una alta dependencia de fuentes externas, ya que esta IA al no poder implementar modelos de machine learning, no permite alimentarse de intentos que se realizaron anteriormente (Dilmegani, 2021a). A fin de comprender el mensaje se requiere investigar algunos términos, dificultando la adaptación de esta tecnología al entorno humano, debido a las múltiples jergas existentes (Alpana, 2017). En consecuencia, a la alta fama que han ganado todos estos desarrollos relacionados a la inteligencia artificial, buscando simular el lenguaje y la interacción humana, y con base a que aún se mantienen muchos de los errores que había en el pasado, ¿sería posible La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. mejorar la calidad de conversación del chatbot utilizando técnicas de inteligencia artificial y diccionarios adaptados a un mercado específico? 1.2 OBJETIVOS DEL PROYECTO 1.2.1 Objetivo General Desarrollar un prototipo de chatbot utilizando principios de la inteligencia artificial y procesamiento del lenguaje natural, para atender a los clientes de forma efectiva e inteligente en la gestión de citas. 1.2.2 Objetivos Específicos 1. Identificar los sistemas de chatbot que se utilizan para la gestión de citas y las problemáticas que presentan durante su funcionamiento. 2. Definir los requerimientos funcionales y no funcionales del proyecto a partir de las problemáticas identificadas, mediante diagramas de casos de uso, mapa de procesos y diagramas de estados. 3. Desarrollar un algoritmo mediante los principios de la inteligencia artificial y NLP, que sea capaz de interactuar fluidamente en una conversación. 4. Implementar mediante un framework web una interfaz de usuario para la interacción con el chatbot y la administración del sitio. 5. Validar el funcionamiento del prototipo de chatbot mediante aplicación de escenarios de pruebas. 1.3 MARCO DE REFERENCIA 1.3.1 Antecedentes Como se comentó previamente, aunque los chatbots han sido un desarrollo antiguo, apenas ahora es que han tenido un gran auge. El cambio sólo fue en los métodos de implementación, inicialmente funcionaban mediante reglas predefinidas y lógica condicional, ahora utilizan algoritmos de machine learning. Este cambio trajo consigo una mejora sustancial en su funcionamiento, lo que se puede ver reflejado en los siguientes estudios: ● Diseño e implementación de XiaoIce, un chatbot social empático, publicado en la revista Computational Linguistics (Zhou et al., 2020), en este se buscó ir más allá de resolver alguna tarea estructurada, enfocándose en que este tuviera la capacidad de comprender las necesidades de comunicación, afecto, conexión y demás sentimientos emocionales con la otra persona, La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. dando así un salto de las capacidades que se conocían de estos programas de computadora. Esto se desarrolló mediante la unificación de algunas características de la inteligencia cognitiva y emocional, como lo es la memoria, empatía, conocimiento, razonamiento y predicción. ● Retos de programación de los chatbot: Perspectiva actual y futura, avance mencionado en la quinta conferencia de la IEEE del 2017 de la región 10, enfocada en la tecnología humanitaria (Rahman et al., 2018). Aquí se mencionó que el NLP sigue siendo el mayor reto de empresas multinacionales con sus propios chatbots como Facebook con wit.ai y Google con api.ai. Además, se deben generar programas de machine learning lo suficientemente eficientes para acertar en las respuestas dadas por esta máquina. Adicionalmente se mencionó que, al incluir esta tecnología en los negocios, se aumenta la efectividad del mismo, puesto que mejora la experiencia de usuario sin costos adicionales; pero, teniendo en cuenta que al hacer un desarrollo de estos se debe considerar la escalabilidad y flexibilidad de este. ● Al Planning Assistant for Scheduling Daily Activities (Ahuja, 2018), esta investigación desarrolló un asistente para la gestión de una agenda personal, donde su eficiencia fue del 30%, ya que se necesitaba de mucho entrenamiento para extraer la información de manera correcta, y se recomienda utilizar un amplio dataset para mejorar el NLP. Al mismo tiempo se tienen diversos antecedentes aplicativos, como: ● ChatCompose, el cual tiene integración con páginas web y aplicaciones como Facebook, Telegram y WordPress. Adicionalmente, maneja casos de uso de soporte de cliente, sección de preguntas frecuentes, eCommerce, gestión de citas y demás. A pesar de ser una aplicación muy completa la sección de asignación de citas y reservas fue creada bajo respuestas predeterminadas de selección, lo que no permite tener la sensación de una comunicación natural y humana (ChatCompose, 2019). ● Bold360, creado por LogMeIn, el cual se enfoca en la atención al cliente a partir de conversaciones fluidas totalmente personalizadas, que pueden ser del bot o de un humano; es un desarrollo multilingüe, lo que permite su expansión y aplicación a diversas culturas. Sin embargo, este software no está orientado a la gestión de citas, sino a la respuesta de solicitudes generales de los usuarios, lo cual pierde mucho valor agregado, ya que una solicitud de cita no quedaría automatizada por completo y requeriría de otro proceso adicional que debe hacer el usuario. Así mismo, se pudo identificar que la característica multilingüe no es más que la traducción de los mensajes a inglés, el cual es su idioma oficial, lo que no permite la mejora en los otros idiomas y la posible comprensión de palabras poco estructuradas o conocidas en el medio, por tanto, no se tendría un machine learning para las otras lenguas, manejando así el inglés una ventaja superior frente a los otros idiomas, algo que siempre ha sucedido a lo largo de la historia (LogMeIn Inc, 2021). La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Por último, sólo algunas de las grandes empresas en Colombia como, Sura, Bancolombia y Protección, emplean la tecnología Watson de IBM, la cual crea chatbots cognitivos, donde las respuestas no son predeterminadas, es decir, no se basan en patrones y palabras clave para construir su respuesta, la cual resuelve parte de la problemática, al mejorar la experiencia de usuario y una atención un poco más personalizada (Mejía Llano, 2018). 1.3.2 Marco teórico 1.1.1 Inteligencia artificial (IA) La inteligencia artificial hace parte de las ciencias de la computación. Puede verse como la capacidad aplicada en diversos sistemas informáticos, donde se requiere de un procesamiento y análisis de datos tal como lo hace la inteligencia humana, para de esta manera poder tomar decisiones, para luego realimentar su conocimiento con este análisis y datos arrojados en el proceso anterior (Rouhiainen, 2018). ● Natural Language Processing (NLP) El procesamiento del lenguaje natural permite a los computadores entender el lenguaje humano, bien sea de manera verbal o escrita. Este procesamiento toma los datos no estructurados dados por el cliente y los convierte en datos estructurados, que le permiten reconocer entidades e identificar patrones, empleando métodos como la tokenización y examinación de la forma raíz de las palabras (IBM, 2020). Dentro de este mecanismo existen los siguientes subconjuntos: ⇒ Natural Language Generation (NLG) La generación del lenguaje natural es la herramienta que permite a las máquinas escribir, produciendo respuestas de texto simuladas a la humana, partiendo de los datos que se le configuraron al inicio de su desarrollo (IBM, 2020). ⇒ Natural Language Understanding (NLU) El entendimiento del lenguaje natural emplea la sintaxis y semántica del lenguaje humano para el análisis de texto, partiendo de una sentencia humana; también establece la ontología de las palabras, donde se le da una definición a una palabra dependiendo del contexto en el cual se esté (IBM, 2020). 1.1.2 Machine learning Vertiente de la informática la cual permite que los ordenadores puedan aprender sin estar configurados para esto, dando como resultado sugerencias o predicciones de una situación. Estas reglas de comportamiento siguen tres tipos de aprendizaje: La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. - Supervisado, proporcionando muestras con rasgos objetivos definidos para el entrenamiento del algoritmo. - No supervisado, en este se proporcionan datos no etiquetados y busca los patrones entre estos para poder agruparlos. - Reforzado, el cual aprende por medio de objetivos restringidos por reglas, donde al validar con las restricciones implantadas, en caso de acertar recibe una recompensa y en caso contrario obtiene un castigo, manejando así una motivación para que trabaje de la mejor manera que pueda y aprenda de sus propios errores. Adicional a esto es una rama de la IA, aunque no en todos los desarrollos IA se aplica (Rouhiainen, 2018). ● Redes neuronales Son modelos computacionales que simulan las neuronas biológicas, las cuales aprenden a tomar decisiones con el tiempo, donde se tiene una capa (conjunto de neuronas artificiales) de entrada, varias ocultas y una de salida, con la suposición de que las entradas son independientes entre sí. De esta forma, la entrada recibe los datos del programa, junto con el resultado deseado, las capas ocultas se encargan de procesar y analizar dicha información para entregar cuál sería el proceso para obtener dicho resultado y la capa de salida muestra la solución realizada por el programa; a partir de este último se calcula el error y realiza las correcciones necesarias para minimizar dicho error (Matich, 2001). ● Deep learning Subcampo del machine learning que emplea las redes neuronales en capas para solucionar problemas complejos y con gran cantidad de datos. Empleado para el procesamiento de imágenes, voz y texto, actualmente empleado en los coches autónomos, siendo su principal componente. A diferencia de un algoritmo de machine learning normal, este no se estanca con el crecimiento de los datos (Adam, 2020). 1.1.3 Chatbot Programa que simula la respuesta humana a solicitudes realizadas por una persona mediante una conversación. Son usados comúnmente en servicio al cliente y marketing (Techopedia, 2021). ● Chatbot simples Tipo de chatbot que trabaja bajo comandos y reglas previamente preparadas. Por lo cual si la solicitud se sale del conocimiento previo no podrá entenderla y repetirá su mensaje (Peris, 2021). ● Chatbot inteligentes Son aquellos chatbots que emplean diversas ramas como, deep learning y NLP a alto nivel, donde realiza abstracción de datos para mejorar el entendimiento del contexto para personalizar la respuesta dependiendo del usuario (Oracle, 2020). La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Dialogflow Amazon LEX IBM Watson Canales Texto y Voz Texto y Voz Texto y Voz Integraciones Google Assitant SMS Slack Slack Slack Facebook Viber Facebook Messenger Messenger Facebook Messenger Kik Wordpress Twitter Twilo Custom API Twilo Custom API Integraciones Integración básica web Interfaz de chat básico Interfaz de chat web y móvil para websites básico para websites Idiomas 20+ 6 10+ *Solo inglés para el canal de voz Costo $0,007 por solicitud $0.00075 por solicitud $140 por mes Tabla 1 Cuadro comparativo de plataformas para crear chatbots tomada de Kommunicate (DEVASHISH MAMGAIN, 2019) 1.1.4 Lenguaje de programación Se encuentra compuesto de una serie de caracteres, palabras y sentencias (sintaxis), las cuales componen un conjunto de instrucciones que se encuentran preestablecidas (semántica) y permiten la creación y desarrollo de algoritmos, que posteriormente se convierten en programas que buscan ejecutar cierta tarea, con el fin de automatizar y facilitar los procesos en la vida humana mediante la implementación dentro de los múltiples dispositivos electrónicos (López, 2020). ● Librería Conjunto de recursos, como algoritmos y funcionalidades, que provienen de manera externa, es decir, fueron programados anteriormente por algún usuario con el fin de dar solución a determinado proceso de manera general y que puede ser explotado de manera libre en un ámbito similar con sus respectivas adaptaciones (Zorita, 2016). 1.1.5 Framework Herramienta y entorno de trabajo que permite unificar y ejecutar de manera estandarizada diversos módulos integrados con librerías, funcionalidades y demás componentes de diferentes aplicaciones que se ejecutan en el desarrollo. Por su parte permite obtener una mayor versatilidad del programa, por la integración que se maneja, así como su escalabilidad (Tébar, 2020). La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 2. METODOLOGÍA Para el desarrollo de la investigación se tomó como referente la metodología planteada por la compañía KeyReply (KeyReply, 2019) sobre la construcción de chatbots con inteligencia artificial. Figura 1 Metodologia de KeyReply para la creación de chatbots. (KeyReply, 2019) De la anterior metodología se reduce a una metodología más corta dado que es un producto que no se va a lanzar al mercado por lo cual llega solamente a la etapa de pruebas, así este producto no requiere la planeación del lanzamiento del producto ni monitoreo. En la Figura 2 Metodología a usar en el desarrollo del prototipo.podemos observar la metodología a usar para la creación de este prototipo y posteriormente la explicación de cada etapa. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Figura 2 Metodología a usar en el desarrollo del prototipo. 1. Valoración del negocio: La problemática principal a tratar es el proceso de gestión de citas, el cual es un ámbito bastante amplio, dado que se presenta en hospitales, bancos, consultorios y demás instituciones prestadoras de servicio. El objetivo principal del presente proyecto es desarrollar un chatbot mediante los principios de la Inteligencia Artificial y el procesamiento del lenguaje natural, para atender a los clientes eficazmente, reduciendo los tiempos de espera y mejorando la experiencia del usuario. Inicialmente se tomaron los precios actuales para implementar esta tecnología, mediante diferentes prestadores de servicio como DialogFlow e IBM Watson, los cuales fueron catalogados por PeerSpot como las mejores plataformas para desarrollar chatbots en el 2021, a su vez se analizó el crecimiento anual de este mercado para determinar la entrada a este o no. Pasando al área de software se consultó mediante una encuesta a diferentes usuarios que utilizan estos chatbots en su cotidianidad, que mejorarían de los chatbot, buscando así recolectar requisitos para la estructuración del desarrollo. 2. Recopilación y procesamiento de datos: Para el funcionamiento de esta tecnología se deben emplear datasets que permitan guiar el entrenamiento del chabot, por lo cual es necesario construir una colección de datos con frases y palabras claves relacionadas con el negocio; para esto se tomaron transcripciones de call centers especializados en atención al cliente, donde programan y cancelan citas. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. A su vez, se partió de un dataset de clasificación que se encuentra disponible en la página de Kaggle, de las intenciones del usuario, el cual fue realizado por Elvin Aghammadzada, científico de datos (Aghammadzada, 2021). Finalmente, estos datos permitirán la construcción del modelo inicial de machine learning, donde el chatbot irá aprendiendo con cada una de las interacciones de los usuarios y se retroalimentará. 3. Creación de base de datos de las respuestas: En vista que el machine learning requiere de una alimentación y un mejoramiento constante es necesario almacenar las respuestas del chatbot, donde se tienen en cuenta las frases y palabras claves brindadas por el usuario. Estas respuestas buscan obtener los datos necesarios para la generación de las citas, dado que se va a realizar una integración con la API de Google Calendar para la visualización y gestión de todos los eventos, es decir, creación, eliminación, modificación o sustitución de las citas generadas por el chatbot. 4. Procesamiento del lenguaje natural y desarrollo del modelo de machine learning: Para el procesamiento del lenguaje natural se crean diferentes modelos de machine learning, donde se tomó como base el modelo presentado por Amila Viraj(Viraj, 2020), este modelo busca crear un chatbot mediante Deep learning. Se replicó el modelo de Viraj, entrenándolo con los datos generados en el punto anterior buscando medir el porcentaje de precisión y el porcentaje de falla de este, donde luego se analizó los resultados, buscando que este valor de precisión fuera mayor a 0.9 y menor a 1; de no ser así se cambia la cantidad de capas o parámetros internos de las capas. Posteriormente se filtran los modelos que generan mayor porcentaje de precisión y menor falla, buscando así obtener la mejor opción para implementarlo y trabajar con el más asertivo al interpretar las intenciones de los usuarios. 5. Pruebas: En esta etapa se busca probar el entendimiento y asertividad del modelo de machine learning, esto a través de la retroalimentación que se obtendrá de una amplia variedad de usuarios mediante una encuesta después de realizar una prueba piloto del chatbot creado. Para esto se contarán con 10 usuarios, el cual sería el muestreo mínimo para validar los diferentes casos de uso descritos en el aplicativo. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3. PRESENTACIÓN Y DISCUSIÓN DE RESULTADOS 3.1 IDENTIFICACIÓN DE LAS FALENCIAS Y CUALIDADES DE LOS CHATBOTS Luego de aplicar la encuesta se obtuvieron 33 respuestas, estas con el fin de analizar el público que se busca impactar y conocer parte de las cualidades y falencias que se presentan a la hora de emplear estas herramientas tecnológicas. Se inició con un sondeo respecto al uso de los chatbots, donde el 91% de los encuestados indicó que, si los ha usado, lo que permite identificar que los encuestados que realmente pueden hablar desde la experiencia. Luego se buscó profundizar respecto a la frecuencia de uso de esta herramienta, donde casi la mitad respondió que lo usa de manera escasa y seguido de esto está el uso mensual. Identificando un uso bajo de estos aplicativos que poco a poco han sido más comunes y útiles para diferentes empresas. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Tal como se mencionó en el marco teórico se manejan dos tipos de chatbot, el conversacional y el tipo menú, donde cerca del 52% emplea chatbots conversacionales, siendo este el caso de mayor relevancia, puesto que este sería el tipo de bot que se busca desarrollar. Para el análisis que se realizará, se evaluarán las cualidades y falencias de los chatbots más empleados por los encuestados, los cuales según los resultados son Bancolombia con un 30.3% y sura con un 27.3% La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Analizando la calidad percibida, el 45.2% de la muestra considera una solución deficiente, siendo calificaciones menores o iguales a 3. Uno de los mayores inconvenientes manifestados es la cantidad de veces que se debe indicar la instrucción a un chatbot para poder obtener la respuesta adecuada, donde solo 29.1% de las veces el chatbot entiende con 2 o menos intentos. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Finalmente, la cercanía del chatbot tiende a ser muy baja, donde el 87% de las personas consideran que no se alcanza a sentir similar con una conversación humana. En vista de todos los datos y análisis realizados se deben priorizar algunos aspectos para el desarrollo para mejorar este tipo de herramientas, entre esos estaría la cercanía del bot, la familiaridad con múltiples indicaciones y evitar así la necesidad de repetir las instrucciones. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3.2 ESTUDIO DE CHATBOTS EN EL MERCADO COLOMBIANO Chatbot Bancolombia Sura eps Tipo de chatbot Conversacional Conversacional Plataforma IBM WATSON IBM WATSON Propósito Asesor sobre las transacciones Aumentar el nivel del o consultas sobre servicios servicio y atención a los bancarios. usuarios para agendar citas Tabla 2 Cuadro comparativo de los chatbots en el mercado. 3.3 DESCRIPCIÓN DE LOS REQUISITOS FUNCIONALES Y NO FUNCIONALES A. REQUISITOS FUNCIONALES Código Clasificación Descripción CBF-CI-001 Estable Información brindada por el chatbot para comenzar una Conversación inicial conversación con el usuario ● Presentación personal ● Pregunta de qué servicio desea CBF-AC-001 Estable En este momento de la conversación el chatbot le Agendar cita pedirá al usuario datos para realizar la agenda de la cita. Los cuales son: ● Nombre ● Número de identificación ● Correo electrónico La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. ● Celular ● Fecha de la cita ● Hora de la cita CBF-MC-001 Estable Se le solicita al usuario su número de identificación Modificar cita para buscar las citas asignadas a él. Adicional se le preguntará la nueva fecha y hora de la cita CBF-CC-001 Estable Se le solicita al usuario su número de identificación Cancelar cita para buscar las citas asignadas a él. Si se tienen varias citas asignadas se le pedirá fecha y hora específica. CBF-VC-001 Estable Se le solicita al usuario su número de identificación Consultar cita para buscar las citas asignadas a él y se le mostraran sus citas. CBF-PP-001 Volátil- Compatibilidad Página principal que funcionara para el uso del Página principal chatbot de manera web Tabla 3 Tabla de requisitos funcionales del proyecto. B. REQUISITOS NO FUNCIONALES Código Clasificación Descripción CBNF-001 Estable Confidencialidad a la hora del tratamiento de datos de los usuarios CBNF-002 Volátil - emergente El idioma del chatbot será español Tabla 4 Tabla de requisitos no funcionales del prototipo La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3.4 DIAGRAMAS UML Se realizaron los siguientes diagramas para entender ciertos aspectos. En el Anexo 2 Diagrama de casos de uso se encuentra el diagrama de casos de uso el cual nos indica cómo son los escenarios para entender cómo es útil el desarrollo. El Anexo 3 Diagrama de mapa de proceso es el mapa de procesos el cual describe como es el flujo de nuestro chatbot al interactuar con los usuarios. Y por último el Anexo 4 Diagrama de estado es un diagrama de estados, este nos ilustra en cómo se comporta nuestro desarrollo por medio de acciones que trascienden a otros estados.f 3.5 ANÁLISIS DEL LENGUAJE DE PROGRAMACIÓN, LIBRERÍAS Y DATASET A USAR Lenguaje de Python Java R programación Creador Guido van Rossum James Gosling Ross Ihaka, Robert Gentleman Uso conocido Machine learning y Aplicaciones web Análisis Deep learning estadístico, visualización y reporte de datos Tabla 5 Comparación de lenguajes de programación mediante su uso conocido. (IBM Cloud, 2021; Snaplogic, 2020) Después de analizar la información se decide que el lenguaje a utilizar será Python ya que presenta ventajas como fueron descritas en el cuadro superior. Adicional a esto las librerías a usar son: tensorflow, numpy, colorama, sklearn, json, pickle y datetime, estas librerías ayudaran con el procesamiento de datos, la creación del modelo de machine learning, y para la conexión con la API de Google calendar que se utilizara para la gestión con el calendario. El dataset de intenciones fue creado a partir de transcripciones de llamadas a call centers de servicio al cliente, de las cuales se seleccionaron las intenciones de saludo, solicitud de cita, cancelación de cita, y otras interacciones que se dan en un chat. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3.6 COMPARATIVA DE CHATBOTS EN EL MERCADO VERSUS CREAR UNO PROPIO Se realizó la creación de 2 chatbots del mercado (Diagflow y IBM Watson) para ver la dificultad y nivel de personalización que tenían cada uno versus crear un modelo de red neuronal propio. Diagflow En la plataforma de Google para la creación de chatbots de Diagflow, se tienen diferentes componentes: -Entidades: Datos que se desean obtener del usuario, adicional aquí configuramos las preguntas necesarias para la obtención de estos datos -Intenciones: Frases de entrenamiento las cuales los usuarios pueden decir para cumplir con la función del chatbot. -Contexto: Es la información que se encuentra entre intentos para lograr una conversación más fluida. -Cumplimiento: Es la validación de datos de lo que requerimos para cumplir con el funcionamiento del chatbot A partir de estos componentes podemos crear un chatbot para cumplir una función determinada (Gomez, 2021). En nuestro caso de creación de citas, esta herramienta tiene un ejemplo de creación de citas para una peluquería podríamos basarnos en esta para el ejercicio requerido, adicional de que cuenta con integración directa a Google calendar. Su documentación es muy completa lo cual facilita su seguimiento y creación. No se selecciona esta plataforma dado el alto costo y requiere mucho trabajo manual para el aprendizaje del agente. IBM Watson Assistant IBM Watson es la plataforma en la cual IBM nos presenta su creador de chatbots, la cual cuenta con los siguientes componentes: -Acciones: Problema o tarea que un usuario quiere resolver. -Pasos: Interacciones que se dan entre los usuarios y el asistente. Estos pueden ser entendidos como preguntas de clarificación, opciones de respuesta o respuestas finales, en la cuales se almacena aquellas variables que tomamos de las respuestas del usuario. Esta plataforma está diseñada para ser utilizada por grandes corporaciones, pero tiene restricciones a la hora de hablar de infraestructura e incluir diferentes plataformas o softwares por lo cual sus integraciones son complicadas. (discover.bot, 2019) La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Modelo propio Se generan varios modelos propios con la ayuda de la librería de Python de Tensorflow el cual permite crear redes neuronales especificando como se requieren las capas internas de la red. El modelo generado que obtuvo mayor rendimiento fue un modelo el cual tiene capas de los siguientes tipos: -Embedding: Se utiliza para incrustar datos de múltiples dimensiones en un vector de dimensiones más pequeñas. -GlobalAvaragePooling1D: Esta capa nos aplana las entradas en un vector de una sola dimensión. -Dense: Capas donde las neuronas se encuentran conectadas profundamente, es decir cada neurona recibe una entrada de todas las neuronas de la capa anterior. (TensorFlow, 2019) Se le especifica la cantidad de neuronas que va a contener dicha capa. Donde podemos observar en la Figura 3 Descripción de las capas del modelo propio que se utilizaron tres capas, dos con 16 neuronas y una con 8. Figura 3 Descripción de las capas del modelo propio A partir de las tres formas de crear un chatbot que encontramos en este punto nos iremos por crear un modelo propio ya que no genera costos, esta planteado para empresas pequeñas y la libertad de integración con el framework que deseemos en el futuro. Adicional tiene un alto nivel de personalización para el problema que se le pueda llegar a plantear en el futuro dado que podríamos entrenarlo de nuevo con las nuevas intenciones que necesite el negocio. Adicionalmente podemos conectar este modelo con la API de Google Calendar la cual tiene un buen precio por petición y es una aplicación de Google la cual es intuitiva y solo requiere una cuenta para ser usado y ver los eventos generados por el chatbot. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3.7 INVESTIGACION Y SELECCIÓN DEL FRAMEWORK PARA LA INTERFAZ DE USUARIO Dado que se seleccionó el lenguaje Python para el desarrollo del modelo del chatbot se realiza la investigación de cuales son los frameworks más populares para dicho lenguaje de programación. Framework Características • Es el más popular Django • Gran comunidad • Cuenta con mucha documentación • Potente • Personalizable Pyramid • Desarrollo de aplicaciones web grandes • Variedad en la documentación • Micro-framework Flask • Orientado a proyectos API Rest • Ágil • Funciona con Modelo- Vista -Controlador Web2py • Genera HTML a partir del código Tabla 6 Cuadro comparativo de los diferentes frameworks disponibles para Python Basado en lo anterior, se selecciona el framework Django dado que cuenta con más documentación y se ajusta más a las necesidades del proyecto las cuales recaen en realizar una interfaz grafica web potente para su conexión con el backend, es decir, nuestro modelo de inteligencia artificial. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3.8 INTEGRACION DEL FRAMEWORK Y EL MODELO Se creo un proyecto nuevo de Django con el comando de: django-admin startproject ChatBot. La cual nos genera la siguiente carpeta y su contenido: En esta carpeta se modificaron dos archivos en específico: urls.py para crear la url del frontend y el portal administrativo, y setting.py para dar permiso a los hosts donde se va a ver la aplicación web. Adicional se crea el archivo manage.py el cual nos permite iniciar la aplicación. Por medio del comando python manage.py runserver . La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Despues de esto utilizaremos el comando python manage.py startapp chatbot el cual crea otro directorio en donde se encuentran los modelos y las vistas. Creamos una vista de tipo formulario dado que debe de aceptar entradas y se manejan por medio de peticiones http , los cuales corresponden a la interfaz grafica del chatbot. Este a su vez utiliza un template que es el frontend que vamos a utilizar. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Como observamos en la vista llama a una función que se llama chat, la cual es nuestra función principal del chatbot. Todo lo que se desarrollo del modelo y la creación de citas se encuentra contenido en una carpeta llamada functions y así podemos utilizarla como un modulo más de nuestro proyecto. Para que el chatbot funciones debemos de instalar las librerías que se mencionan anteriormente donde creamos nuestro proyecto de Django. Finalmente tenemos una carpeta static que son nuestros archivos que se encuentran estáticos todo el tiempo y se utilizan a través de la aplicación como lo es el css y el archivo JavaScript el cual realiza el manejo de las peticiones http de comunicación entre el chatbot y el usuario. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Con todo esto configurado, iniciamos el proyecto y obtenemos esta interfaz grafica la cual nos conecta el frontend realizado en Django y el backend que es el chatbot. Todo el código del prototipo se encuentra en el Anexo 5 Codigo del prototipo el cual es un enlace a un repositorio. Como observamos en la imagen es una pagina web que contiene el chat que se genera cuando conversamos con nuestro bot y queremos agendar una cita. Este bot a su vez llama internamente a la función de generar evento en Google calendar con la fecha y hora especificada en el mensaje del usuario. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 3.9 PRUEBAS Y VALIDACIONES AL PROTOTIPO Se encuesto a 10 personas que hicieron parte de la encuesta original sobre los chatbots que se encuentran actualmente en el mercado colombiano. Se pregunto si nivel de satisfacción frente al prototipo de chatbot refiriéndose tanto al funcionamiento como a cumplir los requisitos planteados anteriormente. Al ver los resultados hay un nivel de satisfacción alto con el 70% mayor o igual a una puntuación de 4, pero con una puntuación que puede indicar que hay cosas por mejorar. El nivel de repetición para que el chatbot entendiera la intención o necesidad del usuario se encuentra en el promedio comparándolo con los chatbots de agendamiento de citas que se consultó anteriormente, Bancolombia y Sura principalmente. Teniendo un 54,6% menor o igual a repetir 3 veces el mensaje para ser entendido. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. El chatbot cae sobre la puntuación media (3), con un 81,8% de las respuestas en este valor, frente a qué tan humanas son sus respuestas, dándose a entender que la conversación no logra ser tan real comparándola con una persona contesta un chat de servicio al cliente. Sin embargo, es mejor esta conversación un poco inhumana a un chatbot de tipo menú. Algunas de las falencias descritas por estos usuarios que probaron el prototipo se centran en la repetición, la cual fue comparable con chatbots de empresas establecidas creadas con IBM Watson Assistant y el uso de palabras coloquiales o regionales para las solicitudes de los usuarios las cuales pueden llegar a confundir la intención que detecta el chatbot. En general los usuarios encontraron un buen producto mínimo viable, con una buena respuesta a peticiones y agradable a la vista. Se cumplen con todos los requisitos funcionales y no funcionales del prototipo, y se generan los eventos correctamente en el calendario de Google para la gestión correcta de citas. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 4. CONCLUSIONES Y CONSIDERACIONES FINALES El crear un modelo de machine learning, comparable de cierta forma con empresas grandes que tienen ramas dedicadas únicamente al procesamiento del lenguaje natural y a los servicios repetitivos que pueden ser reemplazados por una inteligencia artificial, muestra que el uso de las herramientas open source que existen pueden lograr grandes cosas. El desarrollo de toda la aplicación del chatbot dio frutos en cuanto al aprendizaje sobre inteligencia artificial y desarrollo web en un framework muy popular, lo cual genera experiencia para el futuro y el crecimiento personal de quien asuma el reto de realizarlo. Las recomendaciones para posteriores proyectos recaen principalmente en realizar una exhaustiva investigación sobre las tecnologias emergentes y que existe en el mercado para encontrar las herramientas o programas que pueden facilitar el desarrollo de un modelo de machine learning orientado a el entendimiento del lenguaje natural. También es necesario crear diferentes modelos con diferentes tipos de capas, para así realizar comparaciones de los modelos que se están creando dado que las redes neuronales son cajas negras, podemos definir sus capas, pero no el cómo se comportan sus capas, en el caso de este proyecto un modelo más sencillo fue más útil para el problema planteado. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 5. REFERENCIAS Adam, I. (2020). An Introduction to AI, updated. KDnuggets. https://www.kdnuggets.com/2020/10/introduction-ai-updated.html Ahuja, P. (2018). Al Planning Assistant for Scheduling Daily Activities. In Theses and Dissertations. Alpana. (2017). Challenges with Chatbots — not just technical . ChatbotsLife. https://chatbotslife.com/challenges-with-chatbots-not-just-technical-ecb39612422f BotSide. (2017). 3 Major problems with chatbots and chatbot development | by BotSide | Medium. https://medium.com/@botsideapp/3-major-problems-with-chatbots-and- chatbot-development-503d84e176aa Cerdas Mendez, D. (2017, September 26). Evolución de los Chatbots. Historia de los Chatbots y Asistentes… | by Daniel Cerdas Mendez | Planeta Chatbot : todo sobre los Chat bots, Voice apps e Inteligencia Artificial. https://planetachatbot.com/evolución-de- los-chatbots-48ff7d670201 ChatCompose. (2019). ChatCompose - Plataforma de ChatBots para marketing y soporte. https://www.chatcompose.com/es.html Dilmegani, C. (2021a, January 3). Why natural languages are hard & why chatbots still fail in 2021. AIMultiple. https://research.aimultiple.com/why-chatbots-fail/ Dilmegani, C. (2021b, January 12). Top 12 Benefits of Chatbots in 2021: The Ultimate Guide. https://research.aimultiple.com/chatbot-benefits/ Feng, D. (2018). Chatbot 101: Why Conversational Bots Are The Future of Ecommerce. Big Commerce. https://www.bigcommerce.com/blog/chatbots/#chatbots-now-and-in-our- future Garcia, K. (2018, August 29). Customer Service Seekers Prefer Bypassing Humans - Insider Intelligence Trends, Forecasts & Statistics. EMarketer. https://www.emarketer.com/content/customer-service-seekers-prefer-bypassing- humans Hirschberg, J., & Manning, C. D. (2015). Advances in natural language processing. Science, 349(6245), 261–266. https://doi.org/10.1126/science.aaa8685 IBM. (2020). NLP vs. NLU vs. NLG: the differences between three natural language processing concepts - Watson Blog. https://www.ibm.com/blogs/watson/2020/11/nlp- vs-nlu-vs-nlg-the-differences-between-three-natural-language-processing-concepts/ Aghammadzada, E. (2021). Chatbots: Intent Recognition Dataset | Kaggle. https://www.kaggle.com/datasets/elvinagammed/chatbots-intent-recognition-dataset La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. DEVASHISH MAMGAIN. (2019, May). Dialogflow vs Lex vs Watson vs Wit vs Azure Bot | What to Choose? https://www.kommunicate.io/blog/dialogflow-vs-lex-vs-watson-vs- wit-vs-azure-bot/ Viraj, A. (2020). How To Build Your Own Chatbot Using Deep Learning. https://towardsdatascience.com/how-to-build-your-own-chatbot-using-deep-learning- bb41f970e281 KeyReply. (2019, November). A Technical Guide for Building AI Chatbots - KeyReply. https://keyreply.com/blog/build-ai-chatbots/ LogMeIn Inc. (2021). Bold360. https://www.bold360.com/es López, M. (2020, July 16). Qué es un lenguaje de programación | OpenWebinars. https://openwebinars.net/blog/que-es-un-lenguaje-de-programacion/ Matich, D. J. (2001). Cátedra: Informática Aplicada a la Ingeniería de Procesos-Orientación I Redes Neuronales: Conceptos Básicos y Aplicaciones. Mejía Llano, J. C. (2018, April 2). Chatbots Cognitivos e Inteligencia Artificial: Sura, Bancolombia y Protección casos de éxito en Colombia - Marketing Digital, Social Media y Transformación Digital | Juan Carlos Mejía Llano. https://www.juancmejia.com/marketing-digital/chatbots-cognitivos-e-inteligencia- artificial-sura-bancolombia-y-proteccion-casos-de-exito-en-colombia/ Oracle. (2020). Qué es un chatbot . https://www.oracle.com/co/chatbots/what-is-a-chatbot/ Patel, K. (2019, March 4). Know How Artificial Intelligence Is Adding Value To Businesses. YourStory. https://yourstory.com/mystory/know-how-artificial-intelligence-is-adding- value-t-a7umzl4fop Peris, R. (2021). Chatbot: ¿Qué es, para qué sirve y cómo funcionan? -. Bloo Media. https://bloo.media/blog/por-que-implementar-chatbot-en-tu-estrategia-de-marketing/ Portafolio. (2020, August 5). Interacciones con chatbots aumentaron 380% | Tendencias | Portafolio. https://www.portafolio.co/tendencias/interacciones-con-chatbots- aumentaron-380-543397#article-544036 Rahman, A. M., Al Mamun, A., & Islam, A. (2018). Programming challenges of chatbot: Current and future prospective. 5th IEEE Region 10 Humanitarian Technology Conference 2017, R10-HTC 2017, 2018-Janua, 75–78. https://doi.org/10.1109/R10- HTC.2017.8288910 Rouhiainen, L. (2018). INTELIGENCIA ARTIFICIAL 101 COSAS QUE DEBES SABER HOY SOBRE NUESTRO FUTURO INTELIGENCIA ARTIFICIAL. alienta editorial. Tébar, E. (2020, February 13). Los mejores frameworks webs para tu negocio online | WAM. Frameworks En El Desarrollo Web: Las Mejores Prácticas Para Tu Negocio Online. La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. https://www.wearemarketing.com/es/blog/frameworks-en-el-desarrollo-web-las- mejores-practicas-para-tu-negocio-online.html Techopedia. (2021). What is a Chatbot? https://www.techopedia.com/definition/16366/chatterbot Tsai, P. (2018, April 2). Data snapshot: AI Chatbots and Intelligent Assistants in the Workplace - Spiceworks. SpiceWorks. https://community.spiceworks.com/blog/2964- data-snapshot-ai-chatbots-and-intelligent-assistants-in-the-workplace Zhou, L., Gao, J., Li, D., & Shum, H.-Y. (2020). The Design and Implementation of XiaoIce, an Empathetic Social Chatbot. Computational Linguistics, 46(1), 53–93. https://doi.org/10.1162/coli_a_00368 Zorita, A. (2016). Librería informática, ¿De qué se trata? . https://bytecode.es/que-es-una- libreria-informatica/ discover.bot. (2019). Building Bots With IBM Watson Assistant - discover.bot. https://discover.bot/bot-talk/guide-to-bot-buiding-frameworks/ibm-watson/ Gomez, A. (2021, June 15). Dialogflow | Cómo crear un chatbot con DialogFlow | Guía práctica. https://tech.tribalyte.eu/blog-crear-un-bot-conversacional-con-dialogflow IBM Cloud. (2021). Python vs. R: What’s the Difference? | IBM. https://www.ibm.com/cloud/blog/python-vs-r snaplogic. (2020). Python vs. Java Performance. https://www.snaplogic.com/glossary/python-vs-java-performance TensorFlow. (2019). All symbols in TensorFlow 2 | TensorFlow v2.10.0. https://www.tensorflow.org/api_docs/python/tf/all_symbols Atlassian. (2019). Configuración de un repositorio | Atlassian Git Tutorial. https://www.atlassian.com/es/git/tutorials/setting-up-a-repository AWS. (2022). ¿Qué es una API? - Guía sobre las API para principiantes - AWS. https://aws.amazon.com/es/what-is/api/ Bustamante, S. (2021). Guía de funciones de Python con ejemplos. https://www.freecodecamp.org/espanol/news/guia-de-funciones-de-python-con- ejemplos/ Chapaval, N. (2017). Qué es Frontend y Backend, diferencias y características - Platzi. https://platzi.com/blog/que-es-frontend-y-backend/ Django. (2022). Django documentation | Django documentation | Django. https://docs.djangoproject.com/en/4.1/ La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. KeyReply. (2019, November). A Technical Guide for Building AI Chatbots - KeyReply. https://keyreply.com/blog/build-ai-chatbots/ Medium. (2018). Requerimientos Funcionales y No Funcionales, ejemplos y tips | by Requeridos Blog | Medium. https://medium.com/@requeridosblog/requerimientos- funcionales-y-no-funcionales-ejemplos-y-tips-aa31cb59b22a Mozilla. (2022a). HTML: Lenguaje de etiquetas de hipertexto | MDN. https://developer.mozilla.org/es/docs/Web/HTML Mozilla. (2022b). ¿Qué es JavaScript? - Aprende sobre desarrollo web | MDN. https://developer.mozilla.org/es/docs/Learn/JavaScript/First_steps/What_is_JavaScri pt RedHat. (2019). ¿Qué es el open source? https://www.redhat.com/es/topics/open- source/what-is-open-source Santos, D. (2022). Introducción al CSS: qué es, para qué sirve y otras 10 preguntas frecuentes. https://blog.hubspot.es/website/que-es-css La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. 6. ANEXOS • Encuesta que se realizó sobre los chatbots que se encuentran en el mercado colombiano. https://forms.gle/RvntMueLePyjKa3J6 Anexo 1 Encuesta sobre chatbots en el mercado colombiano • Diagrama de casos de uso Anexo 2 Diagrama de casos de uso La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. https://app.diagrams.net/?page-id=3sTezaUWGL-B0X1q1mkj&hide- pages=1#G19yus2ZbOZp59t4A5d3jShCuStXMoRfcq • Mapa de procesos Anexo 3 Diagrama de mapa de proceso https://app.diagrams.net/?page-id=QZKu-QMykSO1xK6dKbJf&hide- pages=1#G19yus2ZbOZp59t4A5d3jShCuStXMoRfcq • Diagrama de estado La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA. Anexo 4 Diagrama de estado https://app.diagrams.net/?page-id=QZKu-QMykSO1xK6dKbJf&page- id=W1rbpM9exayKAfIWtPKv&hide-pages=1#G19yus2ZbOZp59t4A5d3jShCuStXMoRfcq • Código en un repositorio de github del chatbot https://github.com/clondonop/ChatBot Anexo 5 Codigo del prototipo • Encuesta de satisfacción y validación del chatbot https://forms.gle/ccWgkMWFPjzXRwzd8 Anexo 6 Encuesta de satisfaccion y validacion del chatbot La información presentada en este documento es de exclusiva responsabilidad de los autores y no compromete a la EIA.