Cómo construí un motor de recomendación de anime impulsado por RAG con Python & FastAPI (Abriendo el viaje al código abierto)
Hace poco detectamos que las recomendaciones de MyAnimeList estaban rotas y decidimos arreglarlas desde la raíz. Tras recopilar y normalizar 108 años de historia del anime, desde 1917 hasta 2025, construimos AiMi, un motor de recomendación basado en RAG híbrido preparado para producción. En este artículo relataré el proceso técnico, los retos arquitectónicos que enfrentamos al manejar miles de embeddings en CPU y GPU, y las decisiones de diseño que llevaron al generador viral de recibos de anime.
Datos: 108 años de historia
El principio es simple y peligroso a la vez: basura entra, basura sale. No existía un dataset unificado para este propósito, así que agregamos datos de fuentes como AniDB y MyAnimeList hasta llegar a una base de 8 248 animes. El gran reto fue la normalización: unificamos esquemas de calificaciones, preservando la precisión flotante cuando era posible, y enriquecimos los registros con un campo canonical_embedding_text que fusiona temas, arquetipos de personajes y tono emocional para alimentar la parte semántica del RAG. Para quien quiera trastear, publicamos una muestra de 500 filas en Kaggle para pruebas y benchmarks.
Arquitectura del motor: Hybrid RAG
Las explicaciones habituales de RAG son ejercicios didácticos. Nosotros necesitábamos un sistema robusto para producción, capaz de equilibrar la vibra o feeling de una petición con la precisión léxica de términos concretos. Elegimos una arquitectura híbrida que combina búsqueda vectorial semántica con un refuerzo de palabras clave inspirado en BM25.
Modelo de embeddings
Tras evaluar varias alternativas, adoptamos Nomic v1.5 como modelo de embeddings por su rendimiento en tareas de recuperación estructurada y porque permite ejecución local, evitando costes de API. Ese ahorro fue clave para mantener un producto escalable y sin facturación por consulta.
Capa de refuerzo por palabras clave
La búsqueda vectorial tiende a perder nombres propios y sustantivos raros. Si un usuario pide anime sobre un cuaderno, la semántica puede devolver slice of life en lugar de thrillers centrados en un objeto concreto. Implementamos una lógica nativa en Python que detecta sustantivos relevantes y aumenta la puntuación cuando hay coincidencias exactas en títulos o sinopsis. De este modo equilibramos vibe y precisión.
Compatibilidad hardware: CPU y GPU sin cambios de código
Queríamos que AiMi funcionara igual en un MacBook Air y en un equipo gaming con GPU. En máquinas con GPU cargamos localmente un LLM Qwen 2.5 1.5B para habilitar HyDE, una técnica que genera representaciones hipotéticas de documentos para traducir intenciones tales como no fanservice en etiquetas como wholesome o family friendly antes de buscar. En CPU el sistema degrada elegantemente a un modo ligero que emplea Nomic y el refuerzo por palabras clave para evitar timeouts. Esta inicialización consciente del hardware es crítica para despliegues en entornos heterogéneos.
Generador viral de recibos con Playwright
Los datos son más útiles cuando se pueden compartir de forma atractiva. Transformamos historiales de visionado en recibos estilo tienda usando plantillas HTML renderizadas en imágenes de alta resolución mediante Playwright. Para resolver cuellos de botella en rendimiento, procesamos renders en paralelo con asyncio.gather, pasando de decenas de segundos a unos pocos segundos para lotes grandes.
Desarrollo abierto y paquete para desarrolladores
Creemos en el software accesible. Por eso empaquetamos el ecosistema completo para que desarrolladores y startups puedan lanzar su propia SaaS de recomendaciones o aprender patrones avanzados de RAG. El paquete incluye el dataset completo en Parquet, el motor de recomendaciones con FastAPI y Streamlit, el generador de recibos con Playwright y la librería de assets. Es una solución lista para white label y aceleración de producto.
Q2BSTUDIO y servicios
En Q2BSTUDIO somos una empresa de desarrollo de software especializada en crear aplicaciones a medida y software a medida para clientes de todos los sectores. Además somos especialistas en inteligencia artificial, ciberseguridad y servicios cloud aws y azure, ofreciendo soluciones completas desde la idea hasta la operación. Si buscas potenciar tus procesos con IA para empresas, agentes IA o integrar cuadros de mando con power bi, ofrecemos consultoría y desarrollo full stack. Para proyectos de software a medida puedes conocer nuestras opciones de desarrollo de aplicaciones y software a medida en desarrollo de aplicaciones y software a medida y si te interesa una estrategia de inteligencia artificial integral visita nuestra página de servicios de inteligencia artificial.
Casos de uso y beneficios
AiMi demuestra cómo combinar búsqueda semántica con lógica léxica mejora la experiencia del usuario en recomendaciones que dependen de sensaciones y matices. Este patrón es aplicable a catálogos de ecommerce, bibliotecas digitales y plataformas de contenidos. Para empresas que necesitan proteger datos y cumplir normativas, nuestro equipo de ciberseguridad puede integrar controles y pruebas de pentesting dentro de la canalización de datos.
Conclusión y llamada a la acción
Armar un motor de recomendaciones real requiere más que embeddings: se necesita normalización de datos, ingeniería de prompts si hay LLMs, lógica de refuerzo por keywords y preparación para diferentes entornos hardware. Si quieres que construyamos una solución parecida, optimizada para tu catálogo, tu infraestructura cloud aws y azure o para explotar inteligencia de negocio con power bi, en Q2BSTUDIO podemos ayudarte a definir y ejecutar el proyecto. Ponte en contacto para explorar cómo transformar tus datos en recomendaciones útiles y escalables.
Comentarios