Sistema RAG de Documentos Primero Local 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 a consultas en lenguaje natural utilizando Generación Aumentada por Recuperación — 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 desarrolladores y conscientes de la privacidad:
- 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 de Formato Limitado — Las soluciones típicamente manejaban solo texto plano o PDF, ignorando hojas de cálculo, documentos Word, HTML y Markdown
- Chunking Deficiente — La división ingenua de texto ignoraba la estructura del documento (páginas, hojas, encabezados), creando chunks con poco contexto
- Brechas de Palabras Clave — La búsqueda puramente basada en embedding perdía coincidencias exactas de palabras clave que la búsqueda léxica atraparía
- Ceguera de Hojas de Cálculo — Los sistemas RAG no podían manejar datos tabulares estructurados o responder a 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
Construimos un sistema RAG completo primero local con ingesta de documentos multiformato, chunking consciente de la estructura, generación de embeddings locales, un pipeline de búsqueda híbrida (semántica + texto completo + actualidad), reranking con cross-encoder y una UI basada en 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 de 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: Enrutamiento por detección de intención entre consultas semánticas y estructuradas
- Servidor Web: API de Express.js con gestión de proyectos y endpoints de búsqueda
- Frontend: UI basada en web para carga, gestión y búsqueda interactiva de documentos
Pipeline de Procesamiento de Documentos
Cargadores Multiformato
Un patrón de registro autodetecta 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 la 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 ingenua de texto, el chunker respeta los límites del documento:
- Preserva saltos de página (PDFs), límites de hoja (hojas de cálculo) y jerarquía de encabezados (Word/Markdown)
- Tamaño basado en tokens con tamaño de chunk y solapamiento configurables
- Respaldo jerárquico: divide primero por secciones, luego por párrafos, luego por oraciones
- Cada chunk retiene metadatos de origen (número de página, nombre de hoja, encabezado) para 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 cuantizado para optimización del rendimiento
- Embedding por lotes para procesamiento masivo eficiente
- Truncamiento automático en límites de palabras con normalización L2
Almacenamiento de Vectores
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 a los vectores para recuperación filtrada
Pipeline de Búsqueda Híbrida
El pipeline de recuperación combina tres señales de clasificación para obtener mejores resultados que cualquier enfoque individual:
Señal 1: Búsqueda de Embedding (Semántica)
La búsqueda de similitud vectorial encuentra chunks con significado relacionado incluso cuando se usan palabras diferentes. Maneja parafraseo, 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 de 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 recientemente accedidos o modificados, 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), normalizadas y filtradas por un umbral de puntuación mínima.
Reranking con Cross-Encoder
Después de la recuperación inicial, un modelo cross-encoder vuelve a puntuar a los principales candidatos:
- Puntuación consciente del contexto que considera los pares consulta-documento juntos (no de forma independiente)
- Cálculo de impulso de palabras clave para 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 sola
Soporte para Datos Estructurados
Para 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 por lenguaje natural (ej., "empleados en ingeniería con salario por encima del umbral")
- Soporte de agregación (conteo, suma, promedio, mínimo, máximo)
- El analizador de consultas enruta las consultas estructuradas a un motor dedicado en lugar de la búsqueda de embedding
Interfaz Web
- Gestión de Proyectos — Crear, actualizar y eliminar proyectos de bases de conocimiento
- Carga de Documentos — Carga de archivos por arrastrar y soltar con 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
- Totalmente 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 por lenguaje natural en datos de hojas de cálculo
- Base de Datos Vectorial Sin Servidor — Almacenamiento basado en archivos de LanceDB sin sobrecarga de infraestructura
- Escritura de Documentos — Capacidades de exportación para creación de PDF, DOCX y XLSX
- Aislamiento de Proyectos — Bases de conocimiento independientes con índices separados
- UI Web — Interfaz completa para 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.
Procesamiento de Facturas Potenciado por AI con OCR e Integración con QuickBooks
Una empresa de tamaño mediano que procesa cientos de facturas de proveedores mensualmente necesitaba eliminar la entrada de datos manual extrayendo automáticamente los datos de las facturas usando AI/OCR y sincronizándolos directamente en QuickBooks para la contabilidad y el seguimiento de pagos.
¿Listo para Transformar su Negocio?
Hablemos sobre cómo podemos aplicar soluciones similares a sus desafíos.