Conversor de Ticket a JSON
Este flujo, denominado "Ticket to JSON", tiene como objetivo principal extraer información detallada de un ticket y estructurar esos datos en un formato JSON.
+2
graph TD
%%{init: {'theme': 'mc','layout': 'elk'}}%%
TextInput-7a156[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>Instructions]
style TextInput-7a156 stroke:#a170ff
ChatOutput-ol8bm[<div><img alt="logo" src="/_astro/messages-square.BaSDmT6g.svg" style="height: 20px !important;width: 20px !important"/></div>Chat Output]
style ChatOutput-ol8bm stroke:#a170ff
OpenAIModel-d3ck8[<div><img alt="logo" src="/_astro/openAI.BhmuxEs3.svg" style="height: 20px !important;width: 20px !important"/></div>OpenAI]
style OpenAIModel-d3ck8 stroke:#a170ff
TextInput-cv9yq[<div><img alt="logo" src="/_astro/type.Dy26vmDy.svg" style="height: 20px !important;width: 20px !important"/></div>ImageURL]
style TextInput-cv9yq stroke:#a170ff
DescribeImage-kmqoa[<div><img alt="logo" src="/_astro/image.segxnpQg.svg" style="height: 20px !important;width: 20px !important"/></div>Describe Image]
style DescribeImage-kmqoa stroke:#a170ff
ParseData-7m4sd[<div><img alt="logo" src="/_astro/braces.Djq0PW4_.svg" style="height: 20px !important;width: 20px !important"/></div>DescriptionExtraction]
style ParseData-7m4sd stroke:#a170ff
OpenAIModel-d3ck8 -.- DescribeImage-kmqoa
linkStyle 0 stroke:#a170ff
TextInput-7a156 -.- DescribeImage-kmqoa
linkStyle 1 stroke:#a170ff
DescribeImage-kmqoa -.- ParseData-7m4sd
linkStyle 2 stroke:#a170ff
ParseData-7m4sd -.- ChatOutput-ol8bm
linkStyle 3 stroke:#a170ff
TextInput-cv9yq -.- DescribeImage-kmqoa
linkStyle 4 stroke:#a170ff
🧩 Descripción general
El flujo “Ticket a JSON” automatiza la extracción de información de tickets de venta en formato imagen y la convierte en un objeto JSON estructurado. El proceso aprovecha un modelo de lenguaje avanzado (GPT‑5) para describir el contenido visual y, a partir de dicha descripción, generar el JSON final que puede ser consumido por otras aplicaciones o almacenado en bases de datos.
⚙️ Funcionalidades principales
- Permite introducir tanto un prompt de instrucciones como la URL de una imagen de ticket.
- Utiliza un modelo de IA para analizar el contenido visual del ticket.
- Genera una descripción textual del ticket mediante la combinación de prompt y modelo.
- Extrae los datos relevantes de la descripción y los formatea en un objeto JSON.
- Muestra el resultado como un mensaje de chat para su visualización inmediata.
🔄 Pasos del flujo de trabajo
| Nombre del componente | Rol en el flujo | Entradas clave | Salidas clave |
|---|---|---|---|
| Instrucciones | Proporciona las indicaciones de extracción que el modelo de IA debe seguir. | Texto con las instrucciones y el objetivo del flujo. | Texto con las instrucciones (Message). |
| Imagen del Ticket | Entrega la imagen a procesar. | URL de la imagen del ticket. | Imagen (Data). |
| Modelo de IA | Ejecuta el modelo GPT‑5 con los parámetros configurados. | Prompt, imagen y parámetros del modelo (máx. tokens, temperatura, etc.). | Modelo de IA (LLM). |
| Describir Imagen | Usa el LLM para generar una descripción textual del ticket. | Modelo de IA, imagen y prompt de descripción. | Datos descriptivos (Data). |
| Parsear Datos | Convierte la descripción en texto plano siguiendo la plantilla establecida. | Datos descriptivos, plantilla y separador. | Texto (mensaje) y datos procesados (Data). |
| Salida (Chat Output) | Presenta el resultado final al usuario en la interfaz de chat. | Texto generado en el paso anterior. | Mensaje de chat mostrado al usuario. |
🧠 Notas
- El flujo depende de una cuenta activa con credenciales de OpenAI y de acceso al modelo GPT‑5.
- Se asume que la imagen del ticket es accesible públicamente mediante la URL proporcionada.
- El modelo de IA se ejecuta en modo no-stream, generando la descripción completa antes de pasar al siguiente paso.
- El JSON resultante debe respetar la estructura definida en el prompt de instrucciones; los valores faltantes aparecen como
null. - Si la descripción no contiene alguna de las claves requeridas, el parseo dejará el campo correspondiente como
nullen el JSON final. - Los pasos están diseñados para ser escalables: se puede sustituir el modelo de IA por otro compatible con la misma interfaz, o modificar la plantilla de parseo sin afectar la lógica principal.