Multimodelfusie - Entity Enricher-documentatie

Multimodelfusie

Wanneer je dezelfde verrijking over meerdere AI-modellen uitvoert, kan Entity Enricher de resultaten fuseren tot één output met hoge betrouwbaarheid. Fusie detecteert conflicten tussen model-outputs en lost ze op met deterministische regels of LLM-gestuurde arbitrage.

Fusie-pipeline

Modeluitvoer
Claude-resultaat
GPT-4-resultaat
Gemini-resultaat
Conflictdetectie
Vergelijk elk veld
over alle modellen
Resolutie
Regelgebaseerde samenvoeging
of
LLM-arbitrage
Samengevoegd resultaat
Eén output met
conflict-audittrail

Stap 1: Conflictdetectie

De conflictdetector vergelijkt elk veld over alle modeluitvoer. Velden waarover alle modellen het eens zijn, gaan ongewijzigd door. Velden waarover de modellen het oneens zijn, worden gemarkeerd als conflicten die opgelost moeten worden.

Vergelijkingsregels per veldtype
TypeHoe vergelekenOvereenstemming betekent
ScalairGenormaliseerde exacte overeenkomst (getrimd, kleine letters, afgerond)Alle waarden gelijk na normalisatie
MeertaligVergelijking per taalElke taalsleutel komt overeen tussen modellen
ArraySetvergelijking (volgorde-onafhankelijk)Dezelfde items ongeacht de volgorde
ObjectRecursief per eigenschapAlle geneste eigenschappen komen overeen
NullNull is gelijk aan ontbrekendAls gelijkwaardig behandeld
Voorbeeld: “Sanofi” verrijken met 2 modellen
Claude-uitvoer
revenue: 42.2
gmp_status: true
description: “Sanofi is a global...”
GPT-4-output
revenue: 44.1
gmp_status: true
description: “Sanofi SA is a...”
Resultaat: gmp_status = agreed | revenue = conflict (42.2 vs 44.1) | description = conflict (verschillende tekst)

Stap 2: Conflictoplossing

Conflicten worden opgelost met een van twee methoden, afhankelijk van of je een arbitragemodel in de zijbalk hebt geselecteerd.

Optie A

Regelgebaseerde samenvoeging

Deterministische regels worden toegepast op basis van het gegevenstype van elk veld. Er zijn geen extra LLM-aanroepen nodig — het oplossen gebeurt direct en gratis.

VeldtypeRegelOnderbouwing
StringMeerderheidsstem; bij gelijke stand wint de langste waardeMeer detail is meestal beter
GetalMediaanwaardeBestand tegen uitschieters
BooleanMeerderheid; true wint bij gelijke standVoorzichtige standaard
MeertaligMeerderheidsstemming per taalElke taal afzonderlijk verwerkt
ArrayUnie van alle itemsAlle informatie behouden
ObjectRecursief per veldRegels op geneste velden toepassen
Null vs. waardeVoorkeur voor niet-nullOntbrekende data is erger dan welke waarde dan ook

Tiebreaker: Bij gelijke stemmen wint de waarde van het duurdere model (als indicatie van capaciteit), gevolgd door alfabetische volgorde van de modelnaam.

Optie B

LLM-arbitrage

Wanneer je in de zijbalk een arbitragemodel selecteert, worden conflicten naar een LLM gestuurd voor intelligente oplossing. De arbiter ontvangt de entiteitscontext, de beschrijvingen van de schemavelden en alle conflicterende waarden en neemt vervolgens onderbouwde beslissingen.

Wat de arbiter teruggeeft
Gekozen waardeDe waarde die het als het meest accuraat beschouwt
BronmodelUit welk model de gekozen waarde afkomstig is
RedenerenWaarom het die waarde boven alternatieven koos
BetrouwbaarheidHoe zeker het is van de beslissing (hoog, gemiddeld, laag)

Fallback: Als het arbitragemodel faalt (timeout, fout), valt het systeem automatisch terug op een regelgebaseerde samenvoeging zodat je altijd een resultaat krijgt.

Stap 3: Het samengevoegde resultaat

Na conflictoplossing bouwt het systeem één samengevoegd resultaat op en slaat dit op als een “arbitrage”-record in de database. Elk samengevoegd resultaat bevat een audittrail zodat je kunt nagaan hoe elk conflict is opgelost.

Audittrail (arbitrage-metadata)

Elk samengevoegd resultaat bevat metadata die het fusieproces documenteert:

“method”: “rule_based” | “llm”
“source_record_ids”: [“uuid-1”, “uuid-2”]
“total_fields”: 23
“agreed_fields”: 18
“conflicted_fields”: 5
“decisions”: [{ path, chosen_value, rule_used, ... }]

Wat je ziet in de UI

Nadat de fusie is voltooid, toont het tabblad “Samengevoegd” in het resultatenpaneel:

1
Samenvattingskop
Toont de oplossingsmethode (regelgebaseerd of LLM) en een telling zoals “18 overeengekomen / 5 opgelost / 23 velden totaal”.
2
Samengevoegde JSON
De volledige gestructureerde uitvoer die overeengekomen waarden en opgeloste conflicten combineert in één JSON-document.
3
Conflictrapport
Uitvouwbare kaarten voor elk conflict met: het veldpad, de badge van de oplossingsmethode (Meerderheidsstem, Mediaan, Union, enz.), alle modelwaarden waarbij de gekozen waarde is gemarkeerd, en redeneringstekst als LLM-arbitrage is gebruikt.

Automatische fusion bij batchverwerking

Bij batch-enrichment gebeurt fusie automatisch wanneer je twee of meer modellen selecteert. Je hoeft niet handmatig op “Resultaten samenvoegen” te klikken — zodra alle modellen voor een entity klaar zijn, wordt fusie uitgevoerd en verschijnt het samengevoegde resultaat naast de afzonderlijke modeluitvoer.

Streaming fusion: Tijdens zowel enrichment van één entiteit als batch-enrichment wordt de voortgang van de fusion gestreamd via Server-Sent Events. Je ziet de events fusion_started, conflicts_detected en fusion_completed in real-time.

Regelgebaseerd vs. LLM-arbitrage: wanneer gebruik je wat

Regelgebaseerd (gratis, direct)
  • Voornamelijk feitelijke/numerieke gegevens waar stemlogica goed werkt
  • Groot volume of batchverwerking waarbij kosten belangrijk zijn
  • Eenvoudige schema's met weinig verwachte conflicten
  • Wanneer je deterministische, reproduceerbare resultaten wilt
LLM-arbitrage (extra kosten)
  • Complexe schema's waarbij context van belang is voor de resolutie
  • Tekstuele gegevens (beschrijvingen, samenvattingen) waar stemmen onvoldoende is
  • Wanneer je verklaarbare beslissingen met onderbouwing nodig hebt
  • Cruciale verrijkingen waarbij nauwkeurigheid de extra kosten waard is