Предварительная классификация — документация Entity Enricher

Предварительная классификация

Предварительная классификация проверяет, соответствует ли сущность ожидаемому типу схемы до начала обогащения. Этот необязательный шаг предотвращает галлюцинации и напрасный расход токенов, когда сущности не соответствуют вашей схеме.

Зачем классифицировать перед обогащением?

LLM охотно помогают. Когда их просят обогатить сущность по схеме, они выдают структурированный результат, даже если сущность вообще не соответствует типу схемы. Это приводит к галлюцинированным данным, которые выглядят правдоподобно, но полностью ошибочны.

Проблема галлюцинаций
Без классификации

Схема: «Planet» — Сущность: «Titan»

LLM воспринимает Титан как планету и придумывает данные: орбитальный период, состав атмосферы, количество спутников — всё выглядит правдоподобно, но неверно. На самом деле Титан — спутник Сатурна.

С классификацией

Классификация обнаруживает: «несоответствие — Титан это спутник, а не планета»

Модели обогащения получают этот контекст, устанавливают нерелевантные поля в null и заполняют только те свойства, которые действительно применимы к сущности.

Как это работает

Классификация выполняется как один быстрый вызов LLM до запуска любых моделей обогащения. Она использует дешёвую и быструю модель (например, Claude Haiku или GPT-4o Mini) для минимизации затрат.

1
Отправить тип схемы и данные сущности
Модель классификации получает имя схемы, описание и данные сущности (усечённые до 3000 символов для снижения затрат).
2
Получите структурированную классификацию
Модель возвращает структурированный ответ со статусом (match, mismatch, unknown или ambiguous), описанием того, чем на самом деле является сущность, уровнем уверенности и обоснованием.
3
Внедрить контекст в обогащение
Результат классификации добавляется в начало каждого промпта обогащения в виде раздела «Предварительная классификация». Это даёт моделям обогащения важный контекст о типе сущности.

Четыре статуса классификации

Соответствие

Сущность соответствует типу схемы. Обогащение выполняется с высокой уверенностью.

Эффект промпта
Подтверждает тип сущности и предоставляет дополнительный контекст моделям обогащения.
Пример
Схема «Pharmaceutical Company», сущность «Sanofi» — подтверждена как фармацевтическая компания.
Несоответствие

Сущность имеет тип, отличный от ожидаемого схемой. Классификация объясняет, чем на самом деле является сущность.

Эффект промпта
Предупреждает модели обогащения, что сущность не соответствует. Указывает использовать null для нерелевантных полей.
Пример
Схема «Planet», сущность «Titan» — определена как спутник Сатурна, а не планета.
Неизвестно

Сущность невозможно идентифицировать с уверенностью. У LLM недостаточно информации для её классификации.

Эффект промпта
Указывает моделям обогащения использовать null при неуверенности вместо предположений.
Пример
Схема «Pharmaceutical Company», сущность «XYZ Corp» — недостаточно информации для определения типа сущности.
Неоднозначно

Существует несколько допустимых интерпретаций. Классификация перечисляет альтернативы.

Эффект промпта
Перечисляет возможные интерпретации и просит модели enrichment выбрать наиболее вероятную.
Пример
Схема «Company», сущность «Mercury» — это может быть планета, химический элемент или Mercury Insurance.

Ключевые свойства

Неблокирующий

Классификация носит исключительно рекомендательный характер. Если вызов классификации по какой-либо причине не удаётся (ошибка модели, тайм-аут, ограничение частоты запросов), обогащение продолжается в обычном режиме без контекста классификации. Это гарантирует, что необязательный шаг классификации никогда не помешает завершению обогащения.

Экономично

Классификация рассчитана на работу с быстрыми и недорогими моделями. Она отправляет минимальный объём данных (название схемы, описание и усечённые данные сущности) и ожидает небольшой структурированный ответ. Обычно стоимость составляет малую долю от самого обогащения — это вполне оправдано ради повышения точности.

Обратная связь в реальном времени

Интерфейс показывает ход классификации в реальном времени через Server-Sent Events. Событие classification_started срабатывает в начале проверки, за ним следует classification_completed со статусом, уверенностью и описанием сущности. Результат отображается в виде баннера над результатами модели.

Можно отменить

Если вы отмените обогащение на этапе классификации, задача немедленно останавливается, не запуская ни одной модели обогащения. Лишние токены не расходуются.

Когда включать классификацию

Рекомендуется
  • Схемы с узким типом сущности (например, «Pharmaceutical Company»)
  • Входные данные, которые могут содержать смешанные типы сущностей
  • Пакетное обогащение сущностей из разных источников
  • Когда используются дорогие модели обогащения и вы хотите избежать лишних затрат
Не требуется
  • Универсальные схемы, принимающие любую entity (например, «Organization»)
  • Проверенные входные данные, где вы контролируете тип entity
  • Быстрые итерации, где скорость важнее точности
  • Схемы без чёткого определения типа сущности

Как включить

В редакторе схем или на боковой панели пакетного обогащения найдите выпадающий список «Классификация». Выберите быструю и недорогую модель (Claude Haiku, GPT-4o Mini или подобную). Классификация будет выполняться автоматически перед началом обогащения каждой сущности.

При использовании REST API включите поле classification_model в свой запрос на обогащение с составным ключом модели (например, anthropic::claude-haiku-4-5).