Data · IA · Desarrollo

Clasificador inteligente de documentos

Aplicación web que clasifica documentos con un LLM multimodal y genera salidas en Excel o Word.

1 estrella2026rol: autor únicoestado: activo

01 Problema y contexto

Digitalizar documentos heterogéneos (facturas escaneadas, actas, planillas) exige clasificarlos y transcribirlos a mano hacia el formato correcto: un trabajo repetitivo y propenso a errores.

Automatización documental de oficina: facturas, órdenes de compra, inventarios, informes, contratos y guías que llegan mezclados, en formatos distintos, y que alguien tiene que leer, clasificar y convertir en datos utilizables. El problema no es leer un documento, es que el destino correcto depende del contenido: lo tabular pertenece a una planilla y lo narrativo a un procesador de texto. La aplicación traslada esa decisión a un modelo multimodal y genera directamente el archivo de salida.

02 Solución

Un orquestador en cuatro etapas (clasificación, extracción, generación, resumen) usa visión LLM para imágenes escaneadas y clasificación textual para documentos ofimáticos, y enruta el resultado automáticamente: datos tabulares a Excel y narrativos a Word, con resumen ejecutivo incluido.

  1. Recepción y validación: 14 extensiones aceptadas (imágenes, PDF, Word, Excel, PowerPoint, TXT y CSV) con límite de 20 MB por archivo y rechazo explícito de lo que queda fuera.
  2. Bifurcación por tipo de entrada: las imágenes entran por la ruta de visión del modelo; los documentos ofimáticos pasan primero por extracción de texto, porque enviar la página como imagen perdería información que ya está en el archivo.
  3. Clasificación: Llama 4 Scout, servido por la API de Groq con temperatura 0,1, devuelve JSON con tipo de documento, confianza, formato de destino y razonamiento.
  4. Extracción estructurada: se recuperan los campos relevantes en función del destino asignado, no de un esquema único.
  5. Generación del archivo: lo tabular se escribe a Excel con openpyxl; lo narrativo a Word con python-docx.
  6. Resumen ejecutivo: síntesis del contenido junto al archivo descargable, para juzgar el resultado sin abrirlo.
  7. Despliegue: aplicación Flask desplegada en Vercel, con almacenamiento temporal y borrado programado tras la descarga.

03 Resultados

Cifras verificables en el repositorio y su documentación:

14extensiones de archivo soportadas
7categorías con regla de enrutamiento definida
20 MBlímite de tamaño por archivo

04 Cómo está construido

Sistema web en Flask que recibe documentos (imágenes, PDF, Word, Excel, PowerPoint, TXT, CSV), los clasifica por tipo mediante la API de Groq con el modelo multimodal Llama 4 Scout, extrae datos estructurados y genera un archivo de salida en Excel o Word según el contenido. Un orquestador central coordina el pipeline de clasificación, extracción, generación y resumen ejecutivo, con enrutamiento inteligente: documentos tabulares a .xlsx y narrativos a .docx. Expone una API REST y una interfaz web con arrastrar y soltar, con eliminación automática de archivos temporales.

05 Decisiones éticas

  • Los archivos generados se eliminan del servidor 60 segundos después de la descarga; no queda copia del documento del usuario.
  • La clasificación devuelve confianza y razonamiento del modelo, de modo que la decisión queda auditable en vez de ser una caja negra.
  • Cuando el modelo no devuelve JSON válido, el sistema cae a una clasificación conservadora y declarada en lugar de adivinar en silencio.
  • El procesamiento depende de una API externa: los documentos salen hacia Groq. Se declara de forma explícita porque, a diferencia de un motor local, esta herramienta no es apta para material confidencial.
  • La clave de API se gestiona por variable de entorno y nunca se versiona en el repositorio.

06 Aspectos destacados

  • Pipeline orquestado en cuatro etapas (clasificación, extracción, generación, resumen) implementado en architecture/orchestrator.py.
  • Clasificación multimodal: visión LLM para imágenes escaneadas y clasificación textual para PDF, Word, Excel y PowerPoint.
  • Enrutamiento automático del formato de salida: datos tabulares a Excel (.xlsx) y documentos narrativos a Word (.docx).
  • API REST con endpoints de procesamiento, descarga y health check, más interfaz web con arrastrar y soltar en JS vanilla.
  • Archivos temporales con limpieza automática diferida y configuración lista para despliegue serverless en Vercel.

07 Limitaciones

No hay entrenamiento ni conjunto etiquetado: la clasificación es zero-shot y se apoya en un prompt con siete categorías de documento y sus reglas de enrutamiento. El valor de confianza lo emite el propio modelo y no está calibrado contra ground truth, así que no debe leerse como una probabilidad. El proyecto no reporta exactitud medida sobre un conjunto de prueba.