Quando si esegue lo stesso arricchimento su più modelli di IA, Entity Enricher può fondere i risultati in un unico output ad alta affidabilità. La fusione rileva i conflitti tra gli output dei modelli e li risolve con regole deterministiche o mediante arbitrato basato su LLM.
Il rilevatore di conflitti confronta ogni campo tra tutti gli output dei modelli. I campi su cui tutti i modelli concordano vengono lasciati invariati. I campi su cui i modelli non concordano vengono segnalati come conflitti da risolvere.
| Tipo | Metodo di confronto | Significato dell'accordo |
|---|---|---|
| Scalar | Corrispondenza esatta normalizzata (senza spazi, in minuscolo, arrotondata) | Tutti i valori sono uguali dopo la normalizzazione |
| Multilingua | Confronto per lingua | Ogni chiave di lingua corrisponde tra i model |
| Array | Confronto tra insiemi (indipendente dall'ordine) | Stessi elementi indipendentemente dall'ordine |
| Oggetto | Ricorsivo per proprietà | Tutte le proprietà nidificate corrispondono |
| Null | Null equivale a mancante | Considerati equivalenti |
I conflitti vengono risolti con uno di due metodi, a seconda che sia stato selezionato un model di arbitration nella barra laterale.
Le regole deterministiche vengono applicate in base al tipo di dati di ciascun campo. Non sono necessarie ulteriori chiamate LLM: la risoluzione è immediata e gratuita.
| Tipo di campo | Regola | Motivazione |
|---|---|---|
| Stringa | Voto a maggioranza; in caso di parità vince il valore più lungo | In genere, più dettagli sono meglio |
| Numero | Valore mediano | Robusto agli outlier |
| Booleano | Maggioranza; in caso di parità vince true | Impostazione predefinita conservativa |
| Multilingua | Voto a maggioranza per lingua | Ogni lingua risolta in modo indipendente |
| Array | Unione di tutti gli elementi | Mantieni tutte le informazioni |
| Oggetto | Ricorsivo per campo | Applica le regole ai campi nidificati |
| Null vs Valore | Preferisci valore non nullo | Un dato mancante è peggiore di qualsiasi valore |
Spareggio: In caso di parità di voti, prevale il valore proveniente dal modello con prezzo più alto (come indicatore di capacità), seguito dall'ordinamento alfabetico del nome del modello.
Quando si seleziona un modello di arbitrato nella barra laterale, i conflitti vengono inviati a un LLM per una risoluzione intelligente. L'arbitro riceve il contesto dell'entità, le descrizioni dei campi dello schema e tutti i valori in conflitto, quindi prende decisioni motivate.
Fallback: se il modello di arbitraggio fallisce (timeout, errore), il sistema ricorre automaticamente all'unione basata su regole in modo da ottenere sempre un risultato.
Dopo la risoluzione dei conflitti, il sistema crea un unico risultato unito e lo memorizza come record di “arbitrato” nel database. Ogni risultato unito include una traccia di controllo che consente di ricostruire come è stato risolto ciascun conflitto.
Ogni risultato unito include metadati che documentano il processo di fusion:
Al termine della fusione, la scheda “Unito” nel pannello dei risultati mostra:
Nell'arricchimento in batch, la fusione avviene automaticamente quando si selezionano due o più modelli. Non è necessario fare clic manualmente su “Unisci risultati”: non appena tutti i modelli hanno completato l'elaborazione di un'entità, la fusione viene eseguita e il risultato unito appare accanto agli output dei singoli modelli.
fusion_started, conflicts_detected e fusion_completed.