librerIA Chatbot es un chatbot de IA 100% local diseñado para proporcionar recomendaciones y responder preguntas sobre libros utilizando modelos de NLP y una base de datos Neo4j. Este es el proyecto final de la asignatura de Sistemas de Información de Gestión y Business Intelligence del Grado en Ingeniería Informática de la Universidad de León.
agents/
: Contiene la lógica del agente y herramientas relacionadas.data/
: Archivos de datos y scripts de procesamiento.doc/
: Documentación del proyecto.models/
: Gestión de embeddings y modelos.testing/
: Scripts de prueba.utils/
: Utilidades y scripts auxiliares.view/
: Interfaz de usuario y lógica de presentación..env
: Archivo de configuración de variables de entorno..gitignore
: Lista de archivos y directorios que Git debe ignorar.main.py
: Punto de entrada principal de la aplicación.requirements.txt
: Lista de dependencias del proyecto.README.md
: Breve descripción del proyecto.
-
Clona el repositorio:
git clone https://github.com/Apriea04/librerIA-chatbot cd libreIA-chatbot
-
Se recomienda crear y activar un entorno virtual con
Python 3.11.9
. -
Instala las dependencias:
pip install -r requirements.txt
-
Descarga e instala Ollama y los modelos necesarios, por ejemplo,
llama3.3
. -
Descarga, instala y crea una nueva BBDD en Neo4j.
-
Configura las variables de entorno en el archivo
.env
:NEO4J_URI=bolt://<TU_URI_NEO4J> NEO4J_USERNAME=<TU_USUARIO_NEO4J> NEO4J_PASSWORD=<TU_CONTRASEÑA_NEO4J> ALL_BOOKS_PATH=data/books_data.csv ALL_RATINGS_PATH=data/books_rating.csv BOOKS_PATH=data/books_data.csv RATINGS_PATH=data/books_rating.csv BATCH_SIZE=10000 EMBEDDINGS_MODEL=dunzhang/stella_en_1.5B_v5 AGENT_LLM_MODEL=llama3.3
-
Descarga el dataset
Amazon Book Reviews
de Kaggle. -
Ejecuta el fichero
data/dataset_corrections.py
para limpiar y procesar el dataset. -
Abre una conexion con la BBDD y ejecuta la consulta Cypher del fichero
utils/load.cypher
. -
Ejecuta el método
generate_embeddings_for
de la claseDBManager
para generar los embeddings de los campos necesarios y guardarlos en la BBDD, pasando como parámetros los siguientes valores:"Book"
,"title"
,"title"
; para los títulos de los libros."Book"
,"description"
,"title"
; para las descripciones de los libros."Review"
,"summary"
,""
; para los resúmenes de las reseñas."Review"
,"text"
,""
; para los textos de las reseñas.
-
Poner en marcha la BBDD de Neo4j.
-
Ejecutar Ollama para tener un servidor de LLM.
-
Ejecutar la aplicación:
streamlit run main.py
-
Abre tu navegador web y ve a
http://localhost:8501
para interactuar con el chatbot.
Nótese que al ser la ejecución 100% local, es posible que el sistema sea lento.
Este proyecto ha sido desarrollado por Álvaro Prieto Álvarez.