Чат-бот на базе знаний называет старую цену: как управлять версиями источников

Новый прайс загрузили вчера, а бот продолжает обещать старую стоимость. Повторная загрузка не помогает: в индексе лежат обе версии, причём старый текст лучше совпадает с вопросом. Настройка «отвечать только по актуальным данным» не исправляет отсутствие технического признака актуальности.
Проследите один ответ до конкретной редакции
Сохраните вопрос, выбранные поиском фрагменты, их идентификаторы, версии документов и итоговый ответ. Не ограничивайтесь названием PDF: под одним названием могли загружать несколько файлов. Если невозможно понять, из какого фрагмента взялась цена, сначала исправьте наблюдаемость, затем меняйте формулировку инструкции модели.
Разделите дату загрузки и дату действия условий. Документ, загруженный сегодня, может описывать прошлогоднюю акцию. Новый файл также способен содержать несколько дат: заключения договора, начала тарифа и завершения спецпредложения. Система должна использовать поле с согласованным смыслом, а не наиболее свежую найденную строку.
Реестр источников важнее числа загруженных файлов
| Поле | Зачем оно нужно | Пример учебного значения |
|---|---|---|
| Документ и редакция | Отличить обновление от нового документа | Тарифы / rev-17 |
| Начало действия | Не включить будущую цену раньше срока | Согласованная дата публикации |
| Завершение действия | Исключить закончившуюся акцию | Дата или отсутствие ограничения |
| Сегмент и продукт | Не смешать разные предложения | B2B / пакет сопровождения |
| Статус | Отделить черновик от утверждённого | Утверждён владельцем тарифа |
| Замещённая редакция | Убрать старую версию из текущей выдачи | rev-16 |
Метаданные должны сохраняться у каждого поискового фрагмента. Отфильтровать документ по актуальности до поиска обычно надёжнее, чем надеяться, что модель сама выберет между старой и новой ценой. Но правила фильтрации обязаны учитывать продукт, сегмент и дату вопроса: запрос о старом договоре может требовать исторической редакции.
Не удаляйте историю вместе с устаревшей выдачей
Старый документ может быть нужен для спора по ранее заключённому договору. Вместо безусловного удаления отделите текущий индекс от архивного доступа. Обычный клиентский вопрос использует актуальные утверждённые источники. Исторический поиск требует явной даты и соответствующих полномочий.
Обновление проводите как замену набора: подготовить новую редакцию, построить фрагменты, проверить контрольные вопросы, переключить доступную версию. Если процесс оборвался посередине, пользователи не должны видеть случайную смесь редакций. После переключения проверьте кеш ответов: он тоже может удерживать прежнюю сумму.
Цена — данные, объяснение — текст
Если бот предлагает оформить услугу, пусть читает доступную цену и состав из той же системы, которая формирует заказ. Права доступа к ней должны быть минимальными. Модель может объяснить разницу пакетов, но итоговые деньги, скидки и доступность рассчитывает проверяемый код. У бота не должно быть возможности придумать индивидуальную скидку только потому, что пользователь настойчиво попросил.
При отсутствии надёжного источника допустим честный отказ назвать сумму и передача специалисту. Это лучше уверенного ответа со случайной цифрой. При этом оператору передают вопрос и причину затруднения, а не заставляют клиента заново описывать задачу.
Контрольный набор перед обновлением
Составьте вопросы о текущем тарифе, старой акции, будущем предложении, другом сегменте и неоднозначном названии. Для каждого заранее укажите допустимый источник и ожидаемое действие: ответить, уточнить или передать человеку. Проверяйте ссылки на редакции и фактические суммы, а не сходство формулировки с эталоном.
Инструмент ниже ищет пересекающиеся интервалы действия редакций для одной пары «продукт / сегмент». Он не проверяет содержание PDF и не тестирует модель. Если две утверждённые редакции действуют одновременно, сначала решите, допустимо ли это по правилам бизнеса. Даты вводятся как календарные, без автоматического сдвига часового пояса; конец периода включён.
Проверка пересечения редакций прайса
Пустой конец означает бессрочное действие. Проверяются только совпадающие продукт и сегмент. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
