Moving from theory to a tangible, working system that turns AI mistakes into high-quality training data. En la , hablamos sobre el medio desordenado del desarrollo de la IA, que es la frustrante brecha entre un prometedor prototipo del 85% y un sistema 99% listo para la producción. La primera parte de esta serie Hoy, vamos a sacarnos las manos sucias y construir una aplicación web simple y funcional que demuestre el ciclo central de una rueda de datos.Al final de este artículo, habrá corregido el error de una IA y generado un conjunto de datos perfecto y finamente ajustado de su trabajo. Nosotros vamos a utilizar el ejemplo de nuestro marco de código abierto, Este ejemplo es autosuficiente, no requiere servicios externos como Docker o Redis, y demuestra lo poderoso que puede ser el patrón del núcleo. correction_deck_quickstart Fuente Fuente El escenario: una factura defectuosa AI Imaginemos que hemos construido una IA para extraer datos estructurados de las facturas. Le alimentamos una imagen de una factura, y queremos que devuelva un objeto JSON limpio. En su primer paso, la IA hace un trabajo decente, pero no es perfecto. Produce esta salida defectuosa: { "supplier_name": "Lone Star Provisins Inc.", // <-- TYPO! "invoice_number": "785670", "invoice_date": "2025-08-20", "inventory_items": [ { "item_name": "TAVERN HAM WH", "total_quantity": 15.82, "total_unit": "LB", "total_cost": 87.80 }, { "item_name": "ONIONS YELLOW JBO", "total_quantity": 5, // <-- WRONG QUANTITY! Should be 50. "total_unit": "LB", "total_cost": 35.50 } ] } Nuestro objetivo es construir un sistema que permita a un ser humano corregir fácilmente estos dos errores y, crucialmente, capturar esas correcciones para retraer. Los tres componentes básicos de nuestro Flywheel Para construir esto, nuestro marco de Foundry se basa en tres abstracciones simples pero poderosas de Python: Es un modelo de base de datos que representa una única unidad de trabajo para la IA. Tiene el input_data (la imagen de factura), el initial_ai_output (el JSON defectuoso arriba), y un lugar para almacenar el corrected_output una vez que un humano lo haya fijado. CorrectionRecord: Este es el billete de oro. Cuando un ser humano guarda su corrección, no solo actualizamos el trabajo. Creamos un CorrectionRecord separado, auto-contenido. Este registro está construido con fines de ajuste. Almacena una copia limpia de la entrada original, el mal intento de la IA y la corrección de la "verdad del suelo" del ser humano. Es un ejemplo de entrenamiento perfecto y portátil. CorrectionHandler: Esta es la lógica de negocio.Es una clase simple que orquesta el proceso: toma los datos de formulario enviados de la interfaz de usuario web, la valida, actualiza el trabajo, crea el CorrectionRecord y gestiona la exportación de todos los registros a un archivo de formación. Estas tres piezas trabajan juntas para formar la columna vertebral de nuestra rueda de vuelo. Vamos a construirlo: el inicio rápido en acción Si estás siguiendo, clona el Navegación a la Instalación y configuración de dependencias. El repositorio fundido examples/correction_deck_quickstart Paso 1: Executa el Quickstart Script Desde su terminal, simplemente ejecute: python quickstart.py Verá un mensaje que un servidor web local ha comenzado en . http://localhost:8000 --- Foundry Quickstart Server running at http://localhost:8000 --- --- Open the URL in your browser to use the Correction Deck. --- --- Press Ctrl+C to stop the server and complete the flywheel. --- Paso 2: Utilice la interfaz de usuario de la cubierta de corrección Abre esa URL en tu navegador. Verás una simple UI de Corrección Deck. A la izquierda está la imagen de la factura de origen. A la derecha está un formulario web preenchido con los datos defectuosos de la IA. Tu tarea es ser el ser humano en el ciclo. Haga estas dos correcciones: Solucionar el Typo: Cambie Lone Star Provisins Inc. a Lone Star Provisions Inc. Corregir la cantidad: Cambie la cantidad para ONIONS YELLOW JBO de 5 a 50. Clique Save Correction. Paso 3: Completar el Flywheel Ahora, vuelva a su terminal y detén el servidor presionando El script desencadena automáticamente el último paso de la rueda de vuelo: exportar su trabajo. Verá esta salida: Ctrl+C --- Server stopped. --- --- Exporting approved corrections to fine-tuning format... --- --- Data successfully exported to 'corrected_data.jsonl' --- --- QUICKSTART COMPLETE --- Acabas de completar una vuelta completa de la rueda de datos. El pago: el archivo de entrenamiento perfecto Abre el En el directorio encontrarás un nuevo archivo: Este es el resultado tangible de su trabajo, capturado y formatado perfectamente para ajustar un modelo de IA moderno. examples/correction_deck_quickstart corrected_data.jsonl Contiene una sola línea de JSON estructurado: {"contents": [{"role": "user", "parts": [{"fileData": {"mimeType": "image/jpeg", "fileUri": "/static/example_invoice.jpeg"}}, {"text": "Extract the key business data from the provided input."}]}, {"role": "model", "parts": [{"text": "{\"supplier_name\": \"Lone Star Provisions Inc.\", \"invoice_number\": \"785670\", \"invoice_date\": \"2025-08-20\", \"inventory_items\": [{\"item_name\": \"TAVERN HAM WH\", \"total_quantity\": 15.82, \"total_unit\": \"LB\", \"total_cost\": 87.8}, {\"item_name\": \"ONIONS YELLOW JBO\", \"total_quantity\": 50.0, \"total_unit\": \"LB\", \"total_cost\": 35.5}]}"}]}]}``` Esto puede parecer complejo, pero es el formato de conversación exacto que modelos como el de Google Gemino y la serie GPT de OpenAI esperan para el ajuste perfecto. "Role": "Usuario": Este es el prompt. Contiene la imagen de entrada (fileUri) y la instrucción que hemos dado a la IA. "role": "model": Esta es la respuesta perfecta. contiene la cadena JSON con sus correcciones aplicadas. Hemos convertido con éxito unos segundos de esfuerzo humano en un ejemplo de entrenamiento de alta calidad, legible por máquina.Ahora, imagina hacerlo para 100 correcciones.O 1000.Ya no estás simplemente corregyendo errores; estás construyendo activamente y eficientemente un conjunto de datos que eliminará toda esta clase de errores en la próxima versión de tu modelo. ¿Qué es lo siguiente? Hemos probado el núcleo del loop del flywheel: Correct -> Capture -> Format for Training. Este es un comienzo poderoso, pero es un proceso fuera de línea. Esperamos que la IA termine su lote, y luego corregimos su trabajo. Pero ¿qué pasaría si pudiéramos ser más interactivos? ¿Qué pasaría si un gasoducto pudiera estar funcionando, encontrarse con algo que no entiende, y inteligentemente pararse para pedir ayuda a un humano en tiempo real? En el próximo artículo de esta serie, construiremos exactamente eso.Construiremos un oleoducto resiliente y humano que sepa cuándo está en problemas y no tiene miedo de pedir aclaraciones.