← Todos los artículos
· 2 min de lectura

Un chatbot RAG multilingüe sobre tus PDFs con FAISS y reranking (coste de búsqueda: 0 €)

Recuperar bien es más importante que generar bien. Construí un pipeline RAG con embeddings multilingües E5, búsqueda vectorial FAISS y un reranker cross-encoder, sobre una arquitectura SaaS multi-tenant. Respuesta media: <3s.

#NLP#RAG#FAISS#Embeddings#LLM
Un chatbot RAG multilingüe sobre tus PDFs con FAISS y reranking (coste de búsqueda: 0 €)

En un sistema RAG (Retrieval-Augmented Generation), todo el mundo se fija en el LLM. Es un error. La calidad de las respuestas depende muchísimo más de qué fragmentos recuperas que del modelo que los redacta. Si recuperas el contexto equivocado, el mejor LLM del mundo te dará una respuesta equivocada con total seguridad.

El problema

Construir un asistente que responda preguntas sobre documentos PDF —manuales, normativas, catálogos— en varios idiomas, con respuestas fundamentadas en el documento y no inventadas, y a coste de infraestructura cercano a cero.

El pipeline de recuperación (donde está el truco)

  1. Embeddings multilingües: uso intfloat/multilingual-e5-large para vectorizar los fragmentos. El modelo entiende que "precio" y "price" están cerca en el espacio vectorial, lo que da soporte multilingüe de serie.
  2. Búsqueda vectorial con FAISS: los vectores se indexan en FAISS, la librería de Facebook para búsqueda de similitud. Corre en CPU, en local, sin servicios gestionados: de ahí el coste de búsqueda de 0 €. Los índices estáticos se pre-generan por idioma; los PDFs que sube el usuario se indexan en RAM por sesión.
  3. Reranking con cross-encoder: la búsqueda vectorial es rápida pero imprecisa. Por eso añado un segundo paso: un cross-encoder (mmarco-mMiniLMv2) que re-puntúa los candidatos leyendo pregunta y fragmento juntos. Es más lento, pero solo se aplica a un puñado de candidatos, y mejora drásticamente la precisión del contexto.

La generación

Solo entonces entra el LLM (Llama vía Groq, por su latencia bajísima), que redacta la respuesta a partir del contexto ya filtrado. El resultado: respuesta media por debajo de 3 segundos.

De demo a producto: SaaS multi-tenant

Por encima del motor RAG monté una capa SaaS multi-tenant con SQLite: clientes, planes (free/basic/pro/enterprise), autenticación por X-API-Key y registro de consumo de tokens con límites por plan. Lo que empezó como una demo es, en arquitectura, un producto.

Qué aprendí

Que la frase "RAG es solo meter documentos en un LLM" es engañosa. El valor está en el pipeline de recuperación —embeddings + búsqueda + reranking— y en hacerlo barato y rápido. El LLM es la última milla, no el motor.

Sobre este proyecto

Chatbot Manual

Asistente inteligente que lee documentos PDF en varios idiomas, facilitando a empresas y clientes el acceso rápido a información clave

Sigue leyendo