当你在多个 AI 模型上运行同一次富集时,Entity Enricher 可以将结果融合为单一的高置信度输出。融合会检测各模型输出之间的冲突,并使用确定性规则或由 LLM 驱动的仲裁来解决它们。
冲突检测器会比较所有模型输出中的每个字段。所有模型一致的字段将原样通过。模型存在分歧的字段会被标记为需要解决的冲突。
| 类型 | 比较方式 | 一致意味着 |
|---|---|---|
| 标量 | 标准化精确匹配(去除首尾空格、转小写、四舍五入) | 归一化后所有值均相等 |
| 多语言 | 以本次运行的主语言为准;翻译差异仅触发按语言的合并 | 主语言中的文本相同——翻译的措辞变体不算作分歧 |
| 数组 | 对项目的主语言视图进行集合比较(与顺序无关) | 无论顺序或翻译措辞如何,均为相同项目 |
| 对象 | 只要标识字段能证明两个模型描述的是同一事物,就按属性处理——否则整个对象算作一处冲突 | 所有嵌套属性均匹配 |
| Null / 空 | null、空字符串或空数组值表示弃权,而非主张 | 已填充的值胜出,且不计为冲突 |
冲突将使用两种方法之一解决,具体取决于你是否在侧边栏中选择了仲裁模型。
系统会根据每个字段的数据类型应用确定性规则。绝大多数情况下完全无需调用 LLM——解析即时且免费。唯一的例外是各模型给出的数值差异极大的情况,任何规则都无法公正裁决;详见下文。
| 字段类型 | 规则 | 理由 |
|---|---|---|
| 字符串 | 多数投票;平局时取最长值 | 通常细节越多越好 |
| 数字 | 最接近中位数的模型值 | 对异常值稳健,绝不生成虚构的平均值 |
| 布尔值 | 多数;平局时取 true | 保守默认值 |
| 多语言 | 按语言进行多数投票,合并各语言 | 各语言独立解析 |
| 数组 | 键感知合并:项目按其键字段分组,拼写变体归并在一起,匹配的项目按字段合并 | 每个逻辑实体对应一行,不丢失任何数据 |
| 对象 | 标识一致时按字段处理;否则整体采用某一个模型的对象 | 把描述不同实体的两个对象混合,会凭空造出第三个两个模型都未返回的对象 |
| Null 与值 | 优先选择已填充的值 | 数据缺失比任何值都更糟 |
决胜规则:票数相同时,价格更高的模型给出的值胜出(以价格作为能力的代理指标),其次按模型名称的字母顺序排定。若整个对象被作为原子整体采纳,则完整度——即已填充叶子节点的数量——排在两者之间:在无从证明哪个实体为真时,优先选择更强的模型,再选择承载信息更多的答案。
只有当两个模型描述的是同一事物时,逐字段合并嵌套对象才是安全的。当标识字段无法证明这一点时——键不同,或根本没有键而底层确实存在分歧——该对象将被视为单个冲突,并原样采用其中一个模型的版本。否则融合就会拼出一个怪物:把这个模型的地址装到那个模型的公司上。有一个后果是有意为之的,但值得了解:胜出方连同其空白一并被采用,因此胜出方留空的字段仍为空——这可能会让该实体卡在数据库准入关卡。相应原因会随本次运行的校验警告一并给出。
“最接近中位数”适用于模型四舍五入方式不同的情形,却不适用于模型相互矛盾的情形——0 与 1854 之间的差距不是舍入差异。当各值的相对离散度达到 20% 时,该字段会升级交由 LLM 仲裁器处理,仲裁模型通过组织常规的模型选择流程自动选定,该调用与其他调用一样计费。这些字段会在融合审计记录中标记为自动升级,因此凡是消耗了 token 的合并,都会说明是哪些字段引起的。
当你在侧边栏选择仲裁模型时,冲突会被发送给 LLM 进行智能解决。仲裁器会接收实体上下文、架构字段描述以及所有冲突值,然后做出有依据的决策。
回退:如果仲裁模型失败(超时、错误),系统会自动回退到基于规则的合并,从而确保你始终能得到结果。
冲突解决后,系统会构建单个合并结果,并将其作为“仲裁”记录存储在数据库中。每个合并结果都包含审计追踪,以便你追溯每个冲突的解决方式。
每条合并结果都包含记录融合过程的元数据:
对于任何合并后的记录,都会在历史记录页面的概览选项卡中显示相同的审计记录。合并记录列出的是它所合并的各个模型,而非其自身的某个模型——当合并基于规则时,它完全没有进行 LLM 调用,因此不含提示词、不含 token,也不产生费用。
融合完成后,结果面板中的“合并”选项卡会显示:
在批量富化中,当你选择两个或更多模型时会自动进行融合。你无需手动点击“合并结果”—— 一旦某个实体的所有模型都成功,融合就会运行,合并结果会与各模型的单独输出一并显示。若某次运行中有模型失败,系统会刻意不进行融合:合并剩余结果会把不完整的答案悄悄当作一致结论发布出去。请先恢复缺失的模型 —— 重试其失败的专长领域后,运行一旦重新完整,就会自动融合。
fusion_started、conflicts_detected 和 fusion_completed 事件。