Sistema de recomendación de películas que combina embeddings semánticos y un LLM para generar recomendaciones y justificaciones en lenguaje natural.
- Carga y preprocesado de metadatos de películas y calificaciones (CSV en
data/). - Generación y persistencia de embeddings usando Chroma + OpenAI Embeddings.
- Construcción de perfiles de usuario a partir de sus valoraciones.
- Motor de recomendación que busca películas semánticamente similares y genera explicaciones con un LLM.
- CLI minimalista (
main.py) con comandosinit,recommendyhealth.
Instala dependencias:
python -m venv venv
. venv/bin/activate
pip install -r requirements.txtCrea un archivo .env en la raíz con al menos:
OPENAI_API_KEY=tu_openai_api_key
CHROMA_DIR=./chroma_store
EMBEDDING_MODEL=text-embedding-3-large
GPT_MODEL=gpt-4.1-miniCargar Dataset (Sin links)
- Inicializar y procesar CSVs:
python main.py init --data-path ./data --save- Generar y guardar embeddings (costoso, requiere
OPENAI_API_KEY):
python main.py init --data-path ./data --save-embeddings- Generar recomendaciones para un usuario (JSON):
python main.py recommend --user-id 1 --mode json --top-n 20- Recomendaciones en lenguaje humano:
python main.py recommend --user-id 1 --mode human --top-n 10src/data_loader.py: carga y unemovies_metadata.csv,keywords.csv,credits.csvyratings.csv.src/preprocessing.py: crea descripciones por película que se usan para generar embeddings.src/embeddings_store.py: construye o carga la base Chroma de embeddings.src/user_profile.py: crea el vector de perfil del usuario a partir de los embeddings de las películas valoradas.src/recommender.py: orquesta el flujo y filtra candidatos ya vistos antes de llamar al LLM (src/llm_justifier.py).