← Volver al blog
Ingesta

Cómo parseamos documentos: del PDF al grafo

7 min de lectura · Ingesta

La calidad de un sistema de conocimiento depende de lo que ocurre antes de la pregunta: cómo convertimos un archivo desordenado en conocimiento estructurado y consultable. Un PDF escaneado, una tabla de Excel o un contrato con jerarquía de carpetas no son lo mismo para un parser.

El pipeline de ingesta

Cuando conectas Google Drive, Lumentia sincroniza, descarga y procesa cada archivo en lotes, verificando la integridad en cada paso.

Drive Sync MD5 + lotes Parser PDF/DOCX/XLSX OCR + Chunks Gemini visión Embeddings Jina AI Índices Qdrant+Neo4j De la sincronización al doble índice (vectorial + grafo), con verificación de integridad en cada etapa.

Parser inteligente

No usamos un único extractor. Según el tipo de archivo elegimos la estrategia: texto nativo para DOCX, extracción por layout para PDF, y un modelo de visión (Gemini) para escaneos e imágenes donde el texto plano no existe. El objetivo es preservar estructura: tablas, títulos y jerarquía, no solo palabras sueltas.

Chunking y embeddings

El texto se divide en chunks semánticamente coherentes (no por tamaño ciego), y cada chunk se vectoriza con un modelo de embeddings. Ese vector vive en Qdrant para la búsqueda por similitud. En paralelo, extraemos entidades (productos, personas, organizaciones, cifras) que se convierten en nodos del grafo en Neo4j.

Actualización continua

La sincronización es incremental y detecta cambios por hash MD5: solo se reprocesa lo que cambió. Cuando eliminas un archivo, marcamos sus chunks como borrados en Qdrant y en Neo4j, de modo que deja de aparecer en las respuestas de forma inmediata.

La idea central: la ingesta no termina en "texto indexado". Termina en un grafo actualizable donde cada dato sabe de qué documento vino y a qué entidad pertenece.