Recomendador de Películas RAG
Sistema de recomendación de películas que combina búsqueda vectorial semántica con un modelo de lenguaje para entender peticiones en lenguaje natural. El usuario describe lo que busca ('una película de los 90s con Tom Hanks sobre amistad') y el sistema extrae entidades con spaCy, filtra el dataset, busca semánticamente en FAISS y genera una respuesta justificada con Gemini.
Stack Tecnológico
¿Qué resuelve?
Búsqueda de películas por concepto o descripción en lenguaje natural, no por palabras clave exactas. El usuario puede pedir 'películas de terror psicológico de los 2000s' y el sistema entiende la intención, filtra por restricciones exactas (actores, géneros, años) y busca semánticamente dentro del subconjunto resultante.
Decisiones Técnicas
- 1
Arquitectura RAG (Retrieval-Augmented Generation) híbrida en dos etapas: pipeline offline para generar embeddings e indexar en FAISS, pipeline online para cada consulta del usuario
- 2
spaCy con modelo multilingüe para NER: extrae actores, géneros y años del prompt antes de la búsqueda semántica, combinando filtrado exacto con búsqueda por similitud
- 3
FAISS (Meta) como base de datos vectorial para búsqueda semántica ultrarrápida sobre embeddings generados con SentenceTransformers multilingüe
- 4
Google Gemini como capa de generación: recibe las películas candidatas de FAISS y produce una respuesta natural y justificada al usuario
- 5
Pipeline offline separado (setup_data.py) para descarga, limpieza y generación de índices — el servidor levanta con los índices ya construidos, sin recalcular embeddings en cada request