Когда вы запускаете одно и то же обогащение на нескольких моделях ИИ, Entity Enricher может слить результаты в единый результат с высокой уверенностью. Слияние обнаруживает конфликты между результатами моделей и разрешает их с помощью детерминированных правил или арбитража на базе LLM.
Детектор конфликтов сравнивает каждое поле по всем выводам моделей. Поля, в которых все модели согласны, проходят без изменений. Поля, в которых модели расходятся, помечаются как конфликты, требующие разрешения.
| Тип | Способ сравнения | Согласие означает |
|---|---|---|
| Скаляр | Нормализованное точное совпадение (без пробелов, в нижнем регистре, округлённое) | Все значения равны после нормализации |
| Многоязычный | Сравнение по языкам | Каждый языковой ключ сопоставляется между model |
| Массив | Сравнение множеств (независимо от порядка) | Одинаковые элементы независимо от порядка |
| Объект | Рекурсивно по каждому свойству | Все вложенные свойства совпадают |
| Null | Null равнозначно отсутствию | Считаются эквивалентными |
Конфликты разрешаются одним из двух методов в зависимости от того, выбрали ли вы модель арбитража на боковой панели.
Детерминированные правила применяются в зависимости от типа данных каждого поля. Дополнительные вызовы LLM не нужны — разрешение мгновенно и бесплатно.
| Тип поля | Правило | Обоснование |
|---|---|---|
| Строка | Голосование большинством; при равенстве выбирается самое длинное значение | Больше деталей — обычно лучше |
| Число | Медианное значение | Устойчив к выбросам |
| Логический | Большинство; при равенстве побеждает true | Консервативное значение по умолчанию |
| Многоязычный | Голосование большинством по языкам | Каждый язык разрешается независимо |
| Массив | Объединение всех элементов | Сохранить всю информацию |
| Объект | Рекурсивно по каждому полю | Применить правила к вложенным полям |
| Null или значение | Предпочитать не-null значение | Отсутствие данных хуже любого значения |
Разрешение ничьей: При равенстве голосов побеждает значение от более дорогой модели (как показатель её возможностей), затем — по алфавитному порядку имён моделей.
Когда вы выбираете модель арбитража на боковой панели, конфликты отправляются в LLM для интеллектуального разрешения. Арбитр получает контекст сущности, описания полей схемы и все конфликтующие значения, а затем принимает обоснованные решения.
Резервный вариант: Если модель арбитража даёт сбой (тайм-аут, ошибка), система автоматически переходит к объединению на основе правил, чтобы вы всегда получали результат.
После разрешения конфликтов система формирует единый объединённый результат и сохраняет его в базе данных как запись «арбитража». Каждый объединённый результат включает журнал аудита, чтобы вы могли отследить, как был разрешён каждый конфликт.
Каждый объединённый результат включает метаданные, документирующие процесс слияния:
После завершения слияния вкладка «Объединённый» на панели результатов показывает:
В пакетном обогащении слияние происходит автоматически, когда вы выбираете две или более модели. Вам не нужно вручную нажимать «Объединить результаты» — как только все модели завершают работу над сущностью, запускается слияние, и объединённый результат появляется рядом с результатами отдельных моделей.
fusion_started, conflicts_detected и fusion_completed в реальном времени.