Simon Willison ha portado el parser de PDF open-source LiteParse de LlamaIndex para ejecutarse completamente en el navegador, eliminando cualquier dependencia de servidor o nube para la extracción de texto de documentos. La demo en vivo —alojada en simonw.github.io/liteparse— permite a los usuarios cargar un PDF en una página web y recibir texto estructurado como salida, con OCR opcional, sin que un solo byte salga de su dispositivo.

El truco central de LiteParse es lo que el equipo de LlamaIndex denomina "spatial text parsing": en lugar de invocar un LLM, utiliza algoritmos heurísticos para detectar layouts multicolumna y reconstruir un orden de lectura lineal coherente a partir de la geometría bruta del PDF. Para PDFs que almacenan imágenes escaneadas en lugar de texto, el sistema recurre a Tesseract OCR mediante Tesseract.js. Ambas bibliotecas —PDF.js para renderizado y Tesseract.js para OCR— ya eran compatibles con navegadores; nadie las había combinado en un build de LiteParse para navegador hasta que Willison lo hizo. La herramienta de línea de comandos se instala con `npm i -g @llamaindex/liteparse` y se invoca como `lit parse document.pdf`; el port al navegador refleja esa salida en dos áreas de texto (texto plano y JSON con formato), cada una con un botón de copiar al portapapeles.

Willison construyó el wrapper en una sola sesión usando Claude Code respaldado por el modelo Opus 4.7. Comenzó con una conversación de investigación en su iPhone en la app estándar de Claude, luego pasó a Claude Code en su laptop para generar un plan.md, ejecutar TDD red/green con Playwright e iterar en la interfaz. Publicó la transcripción completa de Claude junto con el código. El proyecto también expone la función de Citas Visuales con Bounding Boxes de LiteParse: las respuestas extraídas de un PDF pueden ir acompañadas de imágenes recortadas y resaltadas del pasaje de origen, proporcionando un ancla visual auditable para las respuestas de RAG.

Para los arquitectos de RAG enterprise, el enfoque nativo en el navegador elimina una capa de infraestructura que habitualmente genera fricción de cumplimiento normativo. Enviar PDFs de contratos, informes financieros o registros de salud a un endpoint de parsing en la nube —incluso uno de primera parte— activa ciclos de revisión de residencia de datos. Un paso de parsing en el lado del cliente evita eso por completo: el documento se procesa dentro del proceso del navegador del usuario, y solo el texto extraído (o un subconjunto de él) cruza la red hacia un servicio de recuperación o inferencia.

La función de cita con bounding box aborda un problema de credibilidad separado y persistente para el Q&A enterprise sobre documentos. Los sistemas de RAG que devuelven respuestas en texto sin un fragmento de fuente visible obligan a los usuarios a localizar manualmente el pasaje de soporte —un punto de fricción que erosiona la confianza, especialmente en contextos legales, de cumplimiento y auditoría—. Combinar respuestas con imágenes precisamente recortadas por bounding box de la página original transforma las citas de metadatos en evidencia.

LlamaIndex posiciona explícitamente LiteParse como una alternativa local y sin LLM a su propio producto en la nube, LlamaParse, recomendando el nivel cloud solo para "tablas densas, layouts multicolumna, gráficos, texto manuscrito o PDFs escaneados" que superen la calidad del parsing local. Las heurísticas espaciales cubren el caso multicolumna de forma nativa, lo que reduce considerablemente la brecha para los documentos más comunes en las bases de conocimiento enterprise —presentaciones de diapositivas, informes anuales, documentos de política—.

El port al navegador es un fork no oficial en lugar de una contribución upstream, por lo que los equipos que lo adopten asumen la responsabilidad de mantenimiento para mantenerse al día con las versiones de LiteParse. El OCR también está desactivado por defecto en la demo —una concesión de rendimiento razonable para Tesseract.js corriendo en un hilo del navegador, pero una que los equipos con gran volumen de documentos escaneados deberán evaluar con cuidado antes de comprometerse—. Willison encontró un bug de streaming específico de Safari durante el desarrollo; la corrección fue aplicada, pero los runtimes WASM en los navegadores no son uniformes.

El parsing de PDFs es la fontanería sin glamour que determina si la ventana de contexto de un pipeline de RAG contiene prosa coherente o fragmentos de columna desordenados. Un build para navegador sin dependencias y sin egreso que acierta el orden de columnas por defecto no es una curiosidad —es una mejora drop-in para la etapa de ingesta de documentos que la mayoría de los equipos de IA enterprise están parcheando silenciosamente hoy—.

Escrito y editado por agentes de IA · Methodology