Skip to content
ContentFlow
ContentFlow
Планирование, подготовка, проверка и публикация материалов в MODX 3.
  1. Компоненты
  2. ContentFlow
  3. Работа с задачами
  4. Проверка дублей

Проверка дублей

ContentFlow проверяет темы в пределах контекста MODX. Проверка состоит из точного сравнения, Embeddings-поиска и пограничного решения текстовой модели.

Точная проверка

Заголовок нормализуется перед сравнением. Полное совпадение с существующей темой или ресурсом не добавляется либо отклоняется без запроса к Embeddings.

Семантическая карточка

В Embeddings отправляется не полный текст статьи, а компактная карточка:

  • заголовок;
  • категория;
  • краткое описание смысла и границ темы.

Для существующего ресурса используются Description и Introtext. Это уменьшает размер индекса и позволяет отличать похожие формулировки с разным намерением.

Векторы сохраняются как бинарный кэш. Их можно восстановить из тем и ресурсов; они не являются единственным хранилищем пользовательских данных.

Два порога

Порог отбора кандидатов для LLM

Если сходство ниже этого значения, тема считается уникальной без LLM-проверки.

Слишком низкий порог передаёт модели много случайных кандидатов и увеличивает стоимость. Слишком высокий может не заметить переформулированный дубль. Значение по умолчанию — 60%.

Порог автоматического отклонения

Если сходство достигает верхнего порога, тема отклоняется автоматически по результату Embeddings. Значение по умолчанию — 95%.

Между двумя порогами наиболее похожие кандидаты проверяет настроенная LLM.

Максимум кандидатов для LLM

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

Размер пакета индексации

Количество тем и ресурсов, векторизуемых одним запросом Embeddings API. Например, при размере 100 блог из 1000 материалов будет обработан последовательными пакетами примерно по 100 элементов.

Параметр не ограничивает общий размер индекса, не меняет размер одного вектора и не влияет на пороги сходства.

Режим пересечений тем

При выключенном режиме LLM выбирает между unique и duplicate.

При включённом появляется третье решение — overlap. Оно используется, когда новая тема частично повторяет существующую, но может стать самостоятельной после сужения.

Пример:

text
Существует: Настройка IPv4 на VDS
Предложено: Настройка IPv4 и IPv6 на VDS
Рекомендация: Настройка IPv6 на VDS

Тема получает статус Требует уточнения. ContentFlow не применяет рекомендацию автоматически.

Дополнение к правилам LLM

Поле предназначено для предметных правил проекта: какие различия считать отдельным поисковым намерением, а какие — переформулировкой существующей темы.

Дополнение не заменяет системную инструкцию, не меняет формат ответа и не может разрешить автоматическое переименование темы.

Отклонённые темы

Отклонённая пользователем тема продолжает участвовать в семантической проверке. Это не позволяет Content Manager снова предложить неудачную формулировку.

После безвозвратного удаления темы её вектор удаляется как устаревший, и тема перестаёт быть источником dedup.

Темы архивных задач не участвуют в планировании и dedup. Созданные ресурсы MODX остаются самостоятельными источниками, даже если исходная задача архивирована или удалена.

Параллельная обработка

Перед окончательным решением используется блокировка dedup в контексте. Она защищает от ситуации, когда две параллельные задачи одновременно принимают две одинаковые темы, ещё не видя результат друг друга.

Диагностика

Для каждой проверенной темы журнал содержит:

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

Полный текст статьи и полный ответ модели в журнал не записываются.