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.
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.