← Volver a artículos← 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.