Coder Social home page Coder Social logo

chatbot-tfg's Introduction

Asistente automatizado para evaluaciones psicológicas

Autoría

Esta obra es un trabajo realizado por Benearo Semidan Páez Martín como trabajo de fin de grado en ingeniería informática en la ULPGC.

¿En qué consiste este asistente?

Como se menciona en el título, el objetivo de este trabajo es facilitar la manera en la que los expertos de la salud mental realizan evaluaciones psicológicas mediante la automatización del proceso mediante un chatbot.

Actualmente, las preguntas que tiene definidas correponden con el cuestionario PHQ9, que trata principalmente trastornos del estado de ánimo.

Para ello, se usaron principalmente las siguientes herramientas:

  • Rasa, un framework open source en Python para el desarrollo del agente inteligente.
  • Flask, para desarrollar una pequeña aplicación web con Python en la que generar informes de las conversaciones del chatbot.
  • Rasa Webchat, como interfaz gráfica del chatbot, que se presenta a modo de widget.

¿Qué se encuentra en este repositorio?

El repositorio contiene tres módulos, cada uno con un propósito concreto.

En primer lugar, tenemos la carpeta rasa-bot, la cuál contiene el trabajo principal. En ella se sitúan los ficheros que conforman el framework de Rasa, además del fichero de la base de datos SQLite usado para el almacenamiento de las conversaciones.

En segundo lugar, la carpeta reports-app contiene una pequeña aplicación en Flask que genera informes a partir de los registros almacenados en la base de datos por Rasa, otorgando dicha información en un formato más legible.

Finalmente, en demo-page se encuentra un fichero HTML en blanco con el widget Rasa Webchat usado para actuar como interfaz gráfica del chatbot.

¿Cómo usarlo?

Comenzaremos con la instalación de las dependencias, entrenamiento y ejecución del chatbot.

Para la descarga del repositorio e instalación de las dependencias, usaremos lo siguiente:

git clone https://github.com/darkhorrow/chatbot-tfg.git
cd chatbot-tfg/rasa-bot
pip install -r requirements.txt

Si todo sale bien, ya estaría el proyecto listo para entrenar y posteriormente ejecutar.

Nota: Es importante destacar que durante el desarrollo de este trabajo, Tensorflow no estaba disponible para Python 3.8.x. Si durante la instalación dicha dependencia resulta ser la conflictiva, compurebe su versión de Python. Si es igual o superior a 3.8, recomendamos crear un entorno virtual con una versión inferior.

El siguiente paso sería entrenar con Rasa Core y Rasa NLU. Para eso, usarmos el siguiente comando:

rasa train

Posiblemente salgan muchas alertas de Tensorflow si no tienes preparado el equipo para usar la GPU, pero para lo que respecta este trabajo, no es obligatorio, por lo que podemos ignorarlo.

Una vez realizado el entrenamiento, procederemos a ejecutar el chatbot, usando las siguientes líneas.

rasa run --cors "*"
rasa run actions

Estos comandos son bloqueantes, por lo que en general se ejecutarán en consolas distintas. Además, en ocasiones hay que esperar a que el primero acabe para que el segundo pueda ser lanzado sin dar errores.

Con esto, el bot ya está preparado, faltando únicamente la interfaz gráfica.

Si disponemos de un servicio web activo, por ejemplo Apache, bastará con colocar el fichero index.html que está en demo-page en el lugar apropiado. En distribuciones de Linux, suele ser bajo /var/www/html/.

Sin embargo, si no disponemos de uno, podemos usar el módulo http.server de Python, teniendo en cuenta que el objetivo sea desarrollar/probar y no poner la aplicación en producción.

Este módulo podríamos usarlo así, asumiendo que nos encontramos al igual que cuando terminamos de entrenar el modelo:

cd ../demo-page
python -m http.server <puerto>

De esta manera, ya podemos visitar localhost: y encontrar ahí un resultado de la siguiente manera:

BOT

Una vez que tenemos el chatbot listo, podemos habilitar también la aplicación de informes. Partiendo del punto anterior, sería de la siguiente manera:

cd ../reports-app
pip install -r requirements.txt

A continuación, si queremos usar un fichero SQLite distinto al que cargamos al ejecutar Rasa antes, debemos abrir el fichero config.py y editar la variable DATABASE para que figure la nueva ruta de la base de datos SQLite.

Una vez cambiado esto o si se dejó el que se sumnistra por defecto, habría que ejecutar la aplicación:

flask run

Si no hubo problemas en la instalación de las dependencias, esta aplicación debería estar disponible en localhost:5000

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.