Verrijkingsflow - Entity Enricher-documentatie

Verrijkingsflow

Een stapsgewijze uitleg van hoe Entity Enricher één entiteit verwerkt — van invoer via classificatie en parallelle modeluitvoering tot gestructureerde uitvoer.

De pijplijn in één oogopslag

Invoer
Entity-JSON
+ schema
Classificatie
Optionele
typecontrole
Parallelle modellen
Claude
financieel
regelgeving
algemeen
GPT-4
financieel
regelgeving
algemeen
Valideren
Typecontrole
Zelfcorrectie
Uitvoer
Gestructureerd
JSON per model

Stap 1: Configureer de enrichment

Open de pagina Workflow Editor en stel je verrijking in. Een workflow-stepper leidt je door de pipeline-fasen: Voorbeeldgegevens, Schema, Verrijking en Resultaten — plus een stap Database Ready wanneer het schema gekoppeld is aan een database sync, die bevestigt dat de wijzigingen van de run in de wachtrij voor je database zijn geplaatst (of uitlegt waarom het opslaan is geweigerd).

Schemapaneel (links)

Plak voorbeeld-JSON om automatisch een schema te genereren en verken vervolgens de interactieve eigenschappenboom. Bewerk eigenschappen, voeg expertisedomeinen toe en markeer velden als zoeksleutels of behouden.

Verrijkingspaneel (rechts)

Configureer verrijkingsopties (strategie, modellen, talen, classificatie, plus het response-schema en de schakelaars voor strikte gestructureerde uitvoer) en vul de zoeksleutels van de entiteit in (naam, website, land, enz.) om de entiteit te identificeren.

Resultatenpaneel

Toont realtime voortgang en resultaten voor elk model. Bij gebruik van meerdere modellen verschijnt er een knop “Resultaten samenvoegen” voor fusion.

Wat er wordt gecontroleerd voordat er tokens worden uitgegeven

Sommige verzoeken kunnen onmogelijk een bruikbaar resultaat opleveren, en dat ontdek je het goedkoopst vóór de eerste LLM-aanroep. Twee contracten worden vooraf afgedwongen.

Het invoercontract

Een schema legt vast wat de invoer moet bevatten: de sleutelvelden die aangeven welke entiteit dit is, een sleutel op elk item van een array die je aanlevert, en een waarde voor elk veld dat als preserve is gemarkeerd (er kan niets bewaard worden dat nooit is meegegeven). Een verzoek waarin iets daarvan ontbreekt, wordt geweigerd met één enkele fout die alle overtredingen tegelijk opsomt — plus het volledige contract van het schema, zodat je het in één keer kunt herstellen in plaats van de vereisten afwijzing voor afwijzing te ontdekken. Het contract wordt bij elk opgeslagen schema gepubliceerd, zodat een client het vooraf kan controleren.

Het gesloten-arraycontract

Een array waarvoor je items aanlevert, wordt exact verrijkt: het model vult aan wat het over elk item weet en mag er geen toevoegen of weglaten. Stuur je vijf regels, dan krijg je er vijf terug. Een item dat het model niet heeft opgepakt, wordt letterlijk teruggeplaatst in plaats van verloren te gaan, en een item dat het verzint wordt weggelaten. Arrays die je leeg laat, blijven open — dan ontdekt het model feiten, en daar gaat het juist om.

Stap 2: Pre-flight classification (optioneel)

Als je een classificatiemodel hebt geselecteerd, wordt eerst een snelle, goedkope LLM-aanroep uitgevoerd om te controleren of de entity overeenkomt met het schematype. Dit voorkomt dat er tokens worden verspild aan enrichment wanneer de entity niet overeenkomt. Lees meer in de Classificatiedocumentatie.

Niet-blokkerend: Als classificatie om welke reden dan ook mislukt, gaat de verrijking gewoon door. Classificatie is puur adviserend — het voegt context toe aan de verrijkingsprompts maar blokkeert de pipeline nooit.

Stap 3: Strategie-uitvoering

Elk geselecteerd model verwerkt de entiteit met de strategie die je hebt opgegeven — of standaard met de strategie die automatisch wordt gekozen op basis van de vorm van je schema en die de run bij de start meldt. Als er meerdere modellen zijn geselecteerd, draaien ze parallel over providers heen (Claude en GPT-4 draaien tegelijk), terwijl modellen van dezelfde provider achter elkaar draaien om de rate limits te respecteren.

Multi-expertise-voorbeeld (3 domeinen)
1
Schema splitsen per expertise
Eigenschappen worden gegroepeerd op expertisedomein: financiële velden, regelgevingsvelden, algemene velden.
2
Voer parallelle LLM-aanroepen uit
Elke expertise krijgt zijn eigen gerichte prompt met alleen de relevante schema-eigenschappen. Ze draaien allemaal tegelijkertijd.
3
Resultaten geleidelijk samenvoegen
Zodra elke expertise klaar is, wordt de output ervan samengevoegd met het opgebouwde resultaat. Je ziet gedeeltelijke resultaten in realtime.
4
Behoudlogica toepassen
Oorspronkelijke waarden van velden die als 'preserve' zijn gemarkeerd worden hersteld, zodat je invoerdata intact blijft. Binnen arrays worden verrijkte items op basis van hun sleutelvelden aan je invoeritems gekoppeld in plaats van op positie, zodat ook een antwoord in een andere volgorde de juiste waarden herstelt.

Stap 4: Validatie en zelfcorrectie

Elke LLM-respons wordt in realtime gevalideerd aan de hand van je schema. Wanneer de output niet overeenkomt met de verwachte types of beperkingen, stuurt het systeem de fouten automatisch terug naar de LLM ter correctie.

Wat automatisch wordt gecorrigeerd:
String in plaats van getal
"42.2" wordt 42.2
Geïndexeerde objecten als arrays
{"0": "a", "1": "b"} wordt ["a", "b"]
String-nulls
"null" of "None" wordt echte null
Waarden die het model niet kon bepalen
Het declareert ze in plaats van ze te verzinnen — die paden worden null

Maximaal 5 automatische nieuwe pogingen per LLM-aanroep. Elke poging bevat de specifieke validatiefout, zodat de LLM precies weet wat er hersteld moet worden — en het herstel is chirurgisch: alleen de bladeren die fout terugkwamen worden opnieuw gevraagd, niet het hele antwoord.

Let op wat niet in deze lijst staat: een waarde die het model niet kon bepalen is geen fout om opnieuw te proberen. Elk veld kan ontbrekend terugkomen, en het model geeft aan wat het niet kon vinden, dus “onbekend” is een antwoord en geen mislukking. Of een ontbrekende waarde acceptabel is, wordt later bepaald, wanneer de entity in je database wordt toegelaten — niet door het model te laten gokken.

Output afdwingen bij de bron

Twee optionele schakelaars vragen de provider om de uitvoer te beperken voordat deze terugkomt, zodat er om te beginnen minder antwoorden gecorrigeerd hoeven te worden. Beide gelden alleen voor modellen die ze ondersteunen; alles valt nog steeds terug op de validatie-en-herprobeer-lus hierboven.

Responsschema
Stuurt je schema via het native response-schemakanaal van de provider, zodat de JSON aan de serverzijde wordt afgedwongen. Standaard uit — geschikte modellen gebruiken anders het tool-call-kanaal.
Strikte gestructureerde uitvoer
Beperkt de decodering tot het schema (geen drift) op het gebruikte gestructureerde kanaal. Standaard aan; stilzwijgend genegeerd door modellen die dit niet kunnen afdwingen.

Stap 5: Real-time streaming

Entity Enricher gebruikt Server-Sent Events (SSE) om de voortgang in realtime te streamen. Je hoeft niet te wachten tot alle modellen klaar zijn — resultaten verschijnen geleidelijk zodra elk expertisedomein of model klaar is.

Gebeurtenistijdlijn (voorbeeld met 2 modellen, 3 expertises)
0.0sstartedJob start, 2 modellen in de wachtrij
0.1sclassification_startedPre-flightcontrole begint
0.8sclassification_completedEntiteit bevestigd als "match" (95%)
0.9smodel_startedClaude en GPT-4 starten parallel
1.2sexpertise_completedClaude: financieel klaar, gedeeltelijk resultaat gestreamd
1.5sexpertise_completedClaude: algemeen klaar, resultaat bijgewerkt
1.8sexpertise_completedClaude: regelgeving klaar, volledig resultaat gereed
1.9smodel_completedClaude voltooid met volledige gestructureerde uitvoer
2.5smodel_completedGPT-4 voltooid met volledige gestructureerde output
2.5scompletedAlle modellen klaar, stream sluit

Stap 6: Resultaten bekijken

Elk model krijgt zijn eigen resultaatpaneel met de gestructureerde JSON-output, voortgangsbadges per expertise, tokengebruik, kosten en verwerkingstijd. Bij gebruik van de multi-expertise-strategie worden de expertise-badges in realtime bijgewerkt zodra elk domain klaar is.

Wat je per model ziet:
  • Statusbadge — Wachtend, Actief, Geslaagd, Mislukt of Gedeeltelijk
  • Expertise-badges — Gekleurde pillen die de voortgang per domein tonen (blauw = bezig, groen = klaar, rood = mislukt)
  • Progressieve JSON — De output wordt bijgewerkt zodra elke expertise klaar is
  • Statistieken — Verwerkingstijd, aantal tokens, kosten in USD
  • Voortgangslogboek — Vermeldingen met tijdstempel voor elke gebeurtenis

Gedeeltelijk succes afhandelen

Bij gebruik van de multi-expertisestrategie kunnen sommige expertises mislukken terwijl andere slagen. In plaats van alles weg te gooien, retourneert Entity Enricher de samengevoegde output van de geslaagde expertises met de status “Gedeeltelijk”. Je kunt dan alleen de mislukte expertises opnieuw proberen zonder de hele verrijking opnieuw uit te voeren.

Voorbeeld: Als 2 van de 3 expertises slagen, krijg je gestructureerde uitvoer die de geslaagde domeinen dekt. De mislukte expertise kan opnieuw worden geprobeerd en de resultaten ervan worden samengevoegd met de bestaande uitvoer.

Wat gebeurt er nu?

Nadat de enrichment is voltooid, worden je resultaten opgeslagen op de History-pagina voor later gebruik. Als je meerdere modellen hebt gebruikt, kun je de resultaten samenvoegen met Multi-Model Fusion.