← Volver a artículos
·6 min de lectura·
#Python#AI#OCR#LangChain

Parser de tickets con OCR: de foto a datos estructurados

Cómo construí un pipeline que toma una foto de cualquier ticket y devuelve JSON limpio — combinando OCR clásico con un LLM para la extracción.

Los tickets son una pesadilla para los ordenadores: cada tienda usa un formato diferente, las fuentes varían, el papel se deforma. El OCR clásico te da el texto; la parte difícil es extraer significado estructurado de él.

El pipeline

  • Preprocesamiento de imagen: corrección de perspectiva, mejora de contraste, binarización
  • Tesseract OCR para extracción de texto bruto
  • LangChain + GPT-4o-mini para extraer campos estructurados
  • Validación y normalización de esquema JSON

El paso del LLM es la idea clave: en lugar de escribir patrones regex frágiles para cada formato de ticket, describes el esquema que quieres y dejas que el modelo descubra dónde están los campos.

python
schema = {
  "merchant": "string",
  "date": "ISO 8601 date",
  "total": "number",
  "items": [{"name": "string", "price": "number"}]
}

result = chain.invoke({
  "ocr_text": raw_text,
  "schema": json.dumps(schema)
})

La combinación de preprocesamiento determinista y extracción probabilística es más robusta que cualquiera de los dos enfoques por separado.

← Volver a artículos