Moving from theory to a tangible, working system that turns AI mistakes into high-quality training data. In die , ons het gepraat oor die rommelige middelpunt van AI-ontwikkeling, wat die frustrerende gaping is tussen 'n veelbelovende 85% prototipe en 'n produksie gereed 99% -stelsel. Die eerste deel van hierdie reeks Vandag gaan ons ons hande vuil maak en 'n eenvoudige, werkende webtoepassing bou wat die kernloop van 'n data flywheel demonstreer. Aan die einde van hierdie artikel, sal jy 'n AI-fout korrigeer het en 'n perfekte, fijn-aanpassingsbereide dataset uit jou werk gegenereer het. Ons sal die voorbeeld van ons open-source raamwerk, Hierdie voorbeeld is selfbeperk, vereis geen eksterne dienste soos Docker of Redis nie, en bewys presies hoe kragtig die kernpatroon kan wees. correction_deck_quickstart Foundry Die Foundry Die scenario: 'n Flawed Invoice AI Stel ons het 'n AI gebou om gestruktureerde data uit fakture te onttrek. Ons voer dit 'n beeld van 'n faktuur, en ons wil hê dat dit 'n skoon JSON-object terugkeer. Op sy eerste pas doen die AI 'n ordentlike werk, maar dit is nie perfek nie. Dit produseer hierdie gebrekkige uitvoer: { "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 } ] } Ons doel is om 'n stelsel te bou wat 'n mens toelaat om hierdie twee foute maklik te herstel en, van cruciaal belang, vang daardie regstellings vir heropleiding. Die drie kernkomponente van ons Flywheel Om dit te bou, vertrou ons Foundry-raamwerk op drie eenvoudige maar kragtige Python-abstraksies: Job: Dink daaroor as 'n kaartjie in 'n opsporingstelsel.Dit is 'n databasemodel wat 'n enkele eenheid werk vir die AI verteenwoordig.Dit hou die input_data (die faktuurbeeld), die initial_ai_output (die foute JSON hierbo), en 'n plek om die corrected_output te stoor sodra 'n mens dit geregistreer het. CorrectionRecord: Dit is die goue kaartjie. Wanneer 'n mens hul korreksie bewaar, actualiseer ons nie net die Job nie. Ons skep 'n aparte, self-inhoudende CorrectionRecord. Hierdie rekord is doelbewus gebou vir fijne-tuning. Dit stoor 'n skoon kopie van die oorspronklike invoer, die AI se slegte poging, en die mens se "grond waarheid" korreksie. Dit is 'n perfekte, draagbare opleiding voorbeeld. CorrectionHandler: Dit is die besigheidslogika.Dit is 'n eenvoudige klas wat die proses orkestreer: dit neem die ingediende vorm data van die web UI, valideer dit, actualiseer die Job, skep die CorrectionRecord en hanteer die uitvoer van al die rekords na 'n opleiding lêer. Hierdie drie stukke werk saam om die rugsteen van ons vlieëwiel te vorm. Let's Build It: Die Quickstart in aksie As jy volg, kloneer die Navigeer na die die direkteur, en installeer die afhanklikhede. Die Repository examples/correction_deck_quickstart Stap 1: Voer die Quickstart Script uit Van jou terminal, loop eenvoudig: python quickstart.py U sal 'n boodskap sien dat 'n plaaslike webserver begin het op . 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. --- Stap 2: Gebruik die Correction Deck UI Open daardie URL in jou leser. Jy sal 'n eenvoudige Correction Deck UI sien. Aan die linkerkant is die bron faktuur beeld. Aan die regterkant is 'n webvorm vooraf gevul met die AI se gebrekkige data. Jou taak is om die mens in die loop te wees. Maak hierdie twee regstellings: Fix the Typo: Verander Lone Star Provisins Inc. na Lone Star Provisions Inc. Vervang die hoeveelheid: Verander die hoeveelheid vir OONIONS GUL JBO van 5 na 50. Klik hier Save Correction. Stap 3: Voltooi die Flywheel Nou, gaan terug na jou terminal, en stop die bediener deur te druk Die script veroorsaak outomaties die laaste stap van die flywheel: die uitvoer van jou werk. Ctrl+C --- Server stopped. --- --- Exporting approved corrections to fine-tuning format... --- --- Data successfully exported to 'corrected_data.jsonl' --- --- QUICKSTART COMPLETE --- Jy het net een volle draai van die data flywheel voltooi. Die uitbetaling: die perfekte opleiding lêer Open die Jy sal 'n nuwe lêer vind: Dit is die tastbare resultaat van jou werk, wat perfek gevang en geformatteer is om 'n moderne AI-model op te pas. examples/correction_deck_quickstart corrected_data.jsonl Kom ons kyk binne. Dit bevat 'n enkele lyn van gestruktureerde JSON: {"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}]}"}]}]}``` Dit mag ingewikkeld lyk, maar dit is die presiese gespreksformaat wat modelle soos Google se Gemino en OpenAI se GPT-reeks verwag vir finetuning. "rol": "gebruiker": Dit is die oproep. Dit bevat die invoerbeeld (fileUri) en die instruksies wat ons aan die AI gegee het. "rol": "model": Dit is die perfekte antwoord. Dit bevat die JSON-reeks met jou korreksies toegepas. Ons het suksesvol 'n paar sekondes van menslike inspanning in 'n hoë gehalte, masjien leesbare opleiding voorbeeld verander. Nou, stel jou voor om dit te doen vir 100 regstellings. of 1000. Jy is nie meer net die regstelling van foute; jy is aktief en doeltreffend bou 'n dataset wat hierdie hele klas van foute sal verwyder in die volgende weergawe van jou model. Wat is die volgende? Ons het die kernloop van die flywheel bewys: Correct -> Capture -> Format for Training. Dit is 'n kragtige begin, maar dit is 'n off-line proses. Ons het wag vir die AI om sy batch te voltooi, en dan het ons sy werk reggestel.Maar wat as ons meer interaktiewe kon wees?Wat as 'n pipeline kan hardloop, iets ontmoet wat dit nie verstaan nie, en intelligent pauze homself om 'n mens vir hulp in werklike tyd te vra? Ons sal 'n veerkragtige, menslike-in-the-looppipeline bou wat weet wanneer dit in die moeilikheid is en nie bang is om verduideliking te vra nie.