同じ enrichment を複数の AI model で実行すると、Entity Enricher はその結果を単一の高信頼度な出力へ fusion できます。fusion は model 出力間の競合を検出し、決定論的なルールまたは LLM による arbitration で解決します。
競合検出器は、すべてのモデル出力にわたってすべてのフィールドを比較します。すべてのモデルが一致するフィールドはそのまま通過します。モデルが一致しないフィールドは、解決が必要な競合としてフラグ付けされます。
| 型 | 比較方法 | 一致の意味 |
|---|---|---|
| スカラー | 正規化された完全一致(トリム済み・小文字化・丸め済み) | 正規化後、すべての値が等しい |
| 多言語対応 | 言語ごとの比較 | 各言語キーがモデル間で一致 |
| 配列 | 集合比較(順序に依存しない) | 順序に関係なく同じ項目 |
| オブジェクト | プロパティ単位の再帰処理 | すべてのネストされたプロパティが一致 |
| Null | Nullは欠損と等しい | 同等として扱われます |
コンフリクトは、サイドバーでアービトレーションモデルを選択したかどうかに応じて、2 つの方法のいずれかで解決されます。
各フィールドのデータ型に基づいて確定的なルールが適用されます。追加の LLM 呼び出しは不要で、解決は即座かつ無料です。
| フィールドタイプ | ルール | 根拠 |
|---|---|---|
| 文字列 | 多数決。同数の場合は最長の値を採用します | 通常は詳細が多いほど良い結果になります |
| 数値 | 中央値 | 外れ値に強い |
| ブール値 | 多数決。同数の場合は true を優先します | 安全側のデフォルト |
| 多言語対応 | 言語ごとの多数決投票 | 各言語を個別に解決 |
| 配列 | すべての項目の和集合 | すべての情報を保持 |
| オブジェクト | フィールド単位の再帰処理 | ネストされたフィールドにルールを適用 |
| Null と 値 | null 以外を優先 | データの欠落は、いかなる値よりも望ましくありません |
同点の決着方法: 投票が同数の場合、より高価なmodelの値が(能力の代理指標として)優先され、次にmodel名のアルファベット順で決まります。
サイドバーで arbitration model を選択すると、競合はインテリジェントな解決のために LLM へ送られます。arbitrator は entity のコンテキスト、schema のフィールド説明、およびすべての競合値を受け取り、理由付きで判断を下します。
フォールバック: arbitrationのmodelが失敗した場合(タイムアウトやエラー)、システムは自動的にルールベースのマージにフォールバックするため、常に結果が得られます。
競合解決後、システムは単一の統合結果を構築し、データベースに「アービトレーション」レコードとして保存します。すべての統合結果には監査証跡が含まれるため、各競合がどのように解決されたかを追跡できます。
マージされたすべての結果には、フュージョンのプロセスを記録するメタデータが含まれます:
フュージョンが完了すると、結果パネルの「統合」タブに以下が表示されます:
バッチエンリッチメントでは、2つ以上のモデルを選択すると融合が自動的に行われます。「Merge Results」を手動でクリックする必要はありません。エンティティに対してすべてのモデルが完了するとすぐに融合が実行され、統合された結果が個々のモデル出力とともに表示されます。
fusion_started、conflicts_detected、fusion_completedのイベントをリアルタイムで確認できます。