Sistema RAG de Documentos 'Local-First' con Búsqueda Híbrida y Soporte Multiformato
Un equipo que desarrolla herramientas para desarrolladores necesitaba un sistema de inteligencia documental totalmente local y que preservara la privacidad, capaz de ingerir múltiples formatos de archivo, construir bases de conocimiento con capacidad de búsqueda y responder consultas en lenguaje natural utilizando Retrieval-Augmented Generation (RAG), sin enviar ningún dato a API externas.
Discuta Su Proyecto
El Desafío
Las soluciones RAG existentes tenían limitaciones significativas para casos de uso enfocados en la privacidad y en desarrolladores:
- Dependencia de API Externas — La mayoría de las herramientas RAG requerían enviar contenido de documentos a API de embedding basadas en la nube, violando los requisitos de privacidad
- Soporte Limitado de Formatos — Las soluciones típicamente manejaban solo texto plano o PDF, ignorando hojas de cálculo, documentos de Word, HTML y Markdown
- Chunking Deficiente — La división de texto ingenua ignoraba la estructura del documento (páginas, hojas, encabezados), creando chunks con poco contexto
- Brechas de Palabras Clave — La búsqueda puramente basada en embeddings omitía coincidencias exactas de palabras clave que la búsqueda léxica capturaría
- Ceguera ante Hojas de Cálculo — Los sistemas RAG no podían manejar datos tabulares estructurados ni responder consultas de filtrado/agregación
- Sin Reranking — La recuperación de primera pasada a menudo mostraba resultados solo parcialmente relevantes sin un filtro de calidad de segunda pasada
Nuestra Solución
Creamos un sistema RAG 'local-first' completo con ingesta de documentos multiformato, chunking consciente de la estructura, generación de embeddings local, una pipeline de búsqueda híbrida (semántica + texto completo + actualidad), reranking con cross-encoder y una interfaz de usuario web, todo ejecutándose completamente en la máquina del usuario.
Arquitectura
- Cargadores de Documentos: Parsers específicos de formato para PDF, DOCX, XLSX, CSV, HTML, Markdown y texto plano
- Chunker: División consciente de la estructura que preserva los límites de página, hoja y encabezado
- Embeddings: Modelo de embedding local a través de Transformers.js (sin llamadas a API externas)
- Base de Datos Vectorial: LanceDB (sin servidor, basado en archivos) para almacenamiento de embeddings y búsqueda por similitud
- Búsqueda de Texto Completo: Indexación basada en trigramas para coincidencia léxica
- Reranker: Modelo cross-encoder para puntuación de resultados consciente del contexto
- Analizador de Consultas: Detección de intención para enrutar entre consultas semánticas y estructuradas
- Servidor Web: API con Express.js con gestión de proyectos y endpoints de búsqueda
- Frontend: Interfaz de usuario web para carga, gestión y búsqueda interactiva de documentos
Pipeline de Procesamiento de Documentos
Cargadores Multiformato
Un patrón de registro detecta automáticamente el tipo de archivo y lo enruta al parser apropiado:
- PDF — Extracción de texto con segmentación a nivel de página
- Word (.docx/.doc) — Parsing consciente de encabezados que preserva la jerarquía del documento
- Excel/CSV — Parsing hoja por hoja con detección de encabezados y contenido a nivel de fila
- HTML — Extracción consciente de etiquetas con preservación de estructura
- Markdown — Parsing de secciones basado en encabezados
- Texto Plano — Segmentación basada en líneas
Cada cargador extrae metadatos (título, autor, fecha de creación, recuento de páginas/hojas, recuento de palabras) junto con el contenido, produciendo secciones estructuradas con referencias de origen.
Chunking Consciente de la Estructura
A diferencia de la división de texto ingenua, el chunker respeta los límites del documento:
- Preserva los saltos de página (PDFs), los límites de hoja (hojas de cálculo) y la jerarquía de encabezados (Word/Markdown)
- Tamaño basado en tokens con tamaño de chunk y superposición configurables
- Reserva jerárquica: divide primero por secciones, luego por párrafos, luego por oraciones
- Cada chunk conserva los metadatos de origen (número de página, nombre de hoja, encabezado) para la atribución
Embedding e Indexación
Modelo de Embedding Local
- Se ejecuta completamente localmente a través de Transformers.js — ningún dato sale de la máquina
- Modelo cuantificado para optimización del rendimiento
- Embedding por lotes para un procesamiento masivo eficiente
- Truncamiento automático en los límites de las palabras con normalización L2
Almacenamiento Vectorial
LanceDB proporciona almacenamiento vectorial sin servidor:
- Basado en archivos (no se necesita un servidor de base de datos separado)
- Aislamiento por proyecto con índices independientes
- Claves de caché basadas en SHA256 para deduplicación
- Metadatos almacenados junto con los vectores para una recuperación filtrada
Pipeline de Búsqueda Híbrida
La pipeline de recuperación combina tres señales de clasificación para obtener mejores resultados que cualquier enfoque individual:
Señal 1: Búsqueda por Embedding (Semántica)
La búsqueda de similitud vectorial encuentra chunks con significado relacionado incluso cuando se utilizan palabras diferentes. Maneja paráfrasis, sinónimos y consultas conceptuales.
Señal 2: Búsqueda de Texto Completo (Léxica)
La indexación basada en trigramas con similitud de Jaccard detecta coincidencias exactas de palabras clave que la búsqueda por embedding podría pasar por alto, importante para términos técnicos, nombres e identificadores.
Señal 3: Impulso por Actualidad
La ponderación de decaimiento exponencial favorece los documentos accedidos o modificados recientemente, asegurando que la información actualizada aparezca primero.
Combinación de Puntuaciones
Las señales se combinan con pesos configurables (predeterminado: 50% semántico, 25% léxico, 25% actualidad), se normalizan y se filtran por un umbral de puntuación mínimo.
Reranking con Cross-Encoder
Después de la recuperación inicial, un modelo cross-encoder vuelve a puntuar a los candidatos principales:
- Puntuación consciente del contexto que considera los pares consulta-documento juntos (no de forma independiente)
- Cálculo de impulso por palabra clave para la superposición de términos
- Puntuación combinada (cross-encoder + señales de palabras clave)
- Produce una lista clasificada final con mayor precisión que la recuperación de primera pasada por sí sola
Soporte para Datos Estructurados
Para el contenido de hojas de cálculo, el sistema proporciona capacidades adicionales:
- Detección automática de tipos de columna (numérico, fecha, booleano, cadena)
- Filtrado en lenguaje natural (por ejemplo, "empleados en ingeniería con salario superior al umbral")
- Soporte para agregación (recuento, suma, promedio, mínimo, máximo)
- El analizador de consultas enruta las consultas estructuradas a un motor dedicado en lugar de a la búsqueda por embedding
Interfaz Web
- Gestión de Proyectos — Crear, actualizar y eliminar proyectos de bases de conocimiento
- Carga de Documentos — Carga de archivos con arrastrar y soltar y autodetección de formato
- Creación de Documentos — Crear documentos a partir de texto directamente en la UI
- Búsqueda Interactiva — Interfaz de consulta en lenguaje natural con resultados clasificados
- Estadísticas — Tamaño del índice, recuento de documentos y distribución de formatos por proyecto
Características Clave
- Completamente Local — Todo el procesamiento en el dispositivo; sin llamadas a API externas para embeddings o búsqueda
- 9 Formatos de Entrada — PDF, DOCX, DOC, XLSX, XLS, CSV, HTML, Markdown, texto plano
- Chunking Consciente de la Estructura — Preserva páginas, hojas y encabezados como límites de chunk
- Búsqueda Híbrida — Combina señales semánticas, léxicas y de actualidad para una mejor recuperación
- Reranking con Cross-Encoder — Puntuación de segunda pasada para resultados de mayor precisión
- Consultas Estructuradas — Filtrado y agregación en lenguaje natural sobre datos de hojas de cálculo
- Base de Datos Vectorial sin Servidor — Almacenamiento basado en archivos con LanceDB sin sobrecarga de infraestructura
- Escritura de Documentos — Capacidades de exportación para la creación de PDF, DOCX y XLSX
- Aislamiento de Proyectos — Bases de conocimiento independientes con índices separados
- Web UI — Interfaz completa para la gestión de documentos y búsqueda interactiva
Resultados
Stack Tecnológico
caseStudyDetail.more Casos de Estudio
Explore más de nuestras implementaciones técnicas
Análisis de Hojas de Cálculo y Documentos Impulsado por AI con Orquestación Multi-Agente y Referencia Cruzada entre Documentos
Un equipo de datos empresarial necesitaba analizar, consultar y editar grandes colecciones de hojas de cálculo y documentos (Excel, CSV, Google Sheets, PDFs, Word docs) usando lenguaje natural, con la capacidad de hacer referencia cruzada de datos entre múltiples archivos y ejecutar flujos de trabajo analíticos de varios pasos sin manipulación manual de datos.
Catant Plataforma de Gestión de RRHH y Fuerza Laboral
Catant es una plataforma modular de gestión de RRHH y fuerza laboral que ayuda a las empresas a gestionar empleados, nóminas, asistencia y cumplimiento desde un único panel.
¿Listo para Transformar su Negocio?
Hablemos sobre cómo podemos aplicar soluciones similares a sus desafíos.