Если после обновления базы знаний бот использует старые данные, значит новая информация не попала в индекс, не переиндексировалась, проигрывает старым чанкам или ответ берется из кеша.
Сначала нужно проверить путь документа: источник обновился, загрузчик увидел изменение, embeddings пересчитались, индекс обновился, retrieval возвращает новые фрагменты.
Коротко: что делать
- Проверить дату обновления источника и индексирования
- Проверить, есть ли новый документ в vector store или поисковом индексе
- Проверить retrieval по проблемному вопросу
- Проверить кеш ответов и кеш поиска
- Проверить, не остались ли старые чанки без удаления
Основные причины
У этой проблемы редко бывает одна универсальная причина. Обычно нужно проверить связку настроек, данных, кода и внешних сервисов, а потом уже выбирать способ исправления.
- Индексатор не запустился после обновления документа
- Новые embeddings не пересчитались
- Старые чанки остались в индексе и имеют высокий score
- Ответ берется из кеша по старому вопросу
- Метаданные версии документа не используются при поиске
Пошаговая диагностика
Диагностику лучше вести от конкретного примера: один пользователь, один запрос, один документ, одно событие или один экран. Так проще увидеть точку, где система начинает вести себя неправильно.
- Задать тестовый вопрос и посмотреть найденные chunks
- Проверить source_id, version и updated_at у найденных фрагментов
- Проверить логи ingest pipeline
- Проверить, удаляются ли старые chunks при обновлении
- Отключить кеш на тесте и сравнить ответ
Как исправить проблему
Исправление должно закрывать корневую причину, а не только внешний симптом. Если проблема связана с доступами, платежами, данными или безопасностью, сначала стоит сделать резервную копию и проверить правку на тестовом сценарии.
- Настроить переиндексацию при изменении документа
- Удалять или деактивировать старые chunks по source_id
- Добавить версию источника в metadata и фильтры поиска
- Сбросить кеш ответов после обновления базы
- Добавить проверочные вопросы после каждого обновления базы знаний
Безопасный план решения
Сначала проверьте retrieval отдельно от генерации ответа. Если поиск уже возвращает старые chunks, prompt не исправит проблему.
Чего не стоит делать
- Не пытаться лечить старые данные только новым промптом
- Не хранить старые и новые chunks без версий
- Не сбрасывать весь индекс без резервной копии и плана восстановления
- Не публиковать обновление базы без контрольных вопросов
Что подготовить перед исправлением
- Пример старого ответа
- Обновленный документ или источник
- Логи индексации
- Доступ к vector store или поисковому индексу
FAQ
Почему бот уверенно отвечает старым текстом?
Модель использует контекст, который ей вернул retrieval. Если найден старый chunk, ответ будет старым.
Нужно ли пересчитывать embeddings?
Да, если текст документа изменился. Старые embeddings не знают о новом содержании.
Как проверять обновления базы?
Держать набор контрольных вопросов и смотреть, какие источники возвращаются после индексации.
Когда стоит обратиться за помощью
Помощь нужна, если бот отвечает клиентам, сотрудникам или пользователям по регламентам, ценам, инструкциям и документам.
Итог
Начните с проверки найденных chunks и версии источника. Если нужно настроить RAG-индексацию, кеш и актуальность базы знаний, можно написать в Telegram @rabotator_support.