Skip to content

jcestefania/NLP_ChatBot

 
 

Repository files navigation

CHATBOT DE RECETAS - NLP MIAA

Requisitos Previos

1. Instalar Python 3.10+

Descarga desde: https://www.python.org/downloads/

2. Instalar Docker

Docker es necesario para ejecutar ChromaDB.

3. Instalar Ollama

Ollama es necesario para ejecutar los modelos LLM y embeddings localmente.

Verifica que Ollama está instalado correctamente:

ollama --version

Instalación del Proyecto

1. Clonar el repositorio e instalar dependencias

Para la instalación del proyecto se presentan como opciones un fichero requirements.txt y un fichero pyproject.toml.

Instalación con Pip:

pip install -r requirements.txt

Instalación con Poetry:

poetry install --no-root

2. Descargar los modelos de Ollama

Descarga los modelos necesarios:

ollama pull llama3.2
ollama pull embeddinggemma

Preparación de la Base de Datos

⚠️ IMPORTANTE: Este paso debe realizarse una sola vez antes del primer uso.

1. Desplegar ChromaDB con Docker

Este comando descargará la imagen de ChromaDB, creará y arrancará el contenedor automáticamente (escuchará en http://localhost:8000):

En Linux/Mac:

sudo docker compose up -d

En Windows (PowerShell como Administrador):

docker compose up -d

Nota: El archivo docker-compose.yml ya está incluido en el proyecto, no necesitas crear nada. Docker lo lee automáticamente.

2. Procesar y almacenar los PDFs

Este script extrae las recetas de los PDFs ubicados en la carpeta pdf/ usando el archivo offsets.json para determinar las páginas relevantes:

python ./pdf_processing/gisting.py

3. Generar tópicos para el sistema de recomendaciones

Este script analiza las recetas almacenadas y genera categorías temáticas usando BERTopic:

python ./topic_modelling/topic_modelling.py

Ejecución

Una vez preparada la base de datos, ejecuta el chatbot con su interfaz web:

streamlit run app.py

El chatbot estará disponible en http://localhost:8501

Nota: Asegúrate de que Docker esté corriendo con ChromaDB activo antes de iniciar el chatbot.

Evaluación

Para evaluar el rendimiento del chatbot usando el dataset de preguntas (evaluation/questions.csv):

python ./evaluation/evaluation.py

Los resultados se guardarán automáticamente en ./evaluation/evaluation_report.csv con las siguientes métricas:

  • Recall@K (K=1, 3, 5)
  • MRR (Mean Reciprocal Rank)
  • BERTScore (Precision, Recall, F1)
  • FactScore
  • Tiempos de respuesta

Estructura del Proyecto

.
├── app.py                      # Interfaz web del chatbot (Streamlit)
├── rag_system.py               # Sistema RAG principal
├── vector_store.py             # Gestión de ChromaDB
├── docker-compose.yml          # Configuración de Docker
├── offsets.json                # Configuración de páginas de PDFs
├── requirements.txt            # Dependencias Python
├── pdf/                        # PDFs de recetas
├── pdf_processing/             # Scripts de procesamiento de PDFs
├── topic_modelling/            # Scripts de modelado de tópicos
└── evaluation/                 # Scripts y datos de evaluación

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Contributors

Languages

  • Python 100.0%