Как проверять источники в ответах RAG-ассистента
RAG-ассистент может сослаться на подходящий документ, но при этом неверно пересказать его или подкрепить цитатой только часть ответа. Проверка должна отдельно оценивать найденный источник, точность выдержки, соответствие вывода доказательству и корректный отказ при нехватке данных. Ниже - порядок сборки небольшого контрольного набора и разметки ошибок без передачи закрытых материалов в неразрешенный сервис.

Что подготовить
Что делать
Определите границу проверки
Зафиксируйте версию корпуса, дату обновления, типы документов и пользовательский сценарий. Разделите retrieval - нашелся ли нужный материал - и generation - правильно ли система ответила с опорой на него. Если тестировать их одним общим впечатлением, нельзя понять, виноваты ли разметка, поиск, доступ или генерация. Назначьте владельца корпуса и специалиста, который может подтвердить смысл первоисточника.
Результат: Паспорт проверки с версией корпуса и разделенными этапами.Соберите вопросы разных типов
Включите прямой вопрос с точным ответом, вопрос с ответом в двух документах, запрос с устаревшей инструкцией, неоднозначную формулировку, отсутствие ответа в корпусе и запрос за пределами прав пользователя. Добавьте реальные типы вопросов из обезличенных обращений, но не копируйте персональные данные. Для каждого примера запишите ожидаемый документ, нужный фрагмент и допустимый ответ либо отказ.
Результат: Набор случаев с ожидаемыми источниками и поведением.Подготовьте эталон до просмотра ответа модели
Эксперт отмечает точные страницы или абзацы, достаточные для ответа, а также ограничения документа: срок действия, область применения, исключения. Один вопрос может требовать нескольких оснований. Если специалисты не согласны, сохраните оба мнения и уточните критерий; не превращайте спорное толкование в единственную метку только потому, что так ответила система.
Результат: Проверяемые эталонные фрагменты, согласованные с владельцем знаний.Оцените качество найденных ссылок
Проверьте, доступен ли документ пользователю, не устарел ли он и относится ли к вопросу. Отметьте случаи, где retrieval вернул похожий по словам, но не по смыслу раздел. Отдельно проверьте пропуск правильного источника: генератор не сможет сослаться на материал, которого поиск не передал. Для каждого результата сохраняйте идентификатор запроса, версию корпуса и выданные фрагменты.
Результат: Оценка полноты и релевантности поиска отдельно от текста ответа.Сверьте утверждения с цитатами
Разбейте ответ на проверяемые утверждения. Для каждого укажите точную выдержку, которая его подтверждает, и классифицируйте связь: подтверждает полностью, частично, противоречит или не относится. Слова вроде «всегда», «обязательно» и точные сроки требуют прямого основания. Цитата из соседнего абзаца не подтверждает вывод автоматически, даже если документ в целом выглядит релевантным.
Результат: Таблица утверждение - фрагмент - тип подтверждения.Проверьте отказ и разграничение доступа
В контрольный набор добавьте вопрос, на который нет ответа, а также материал, закрытый для тестового пользователя. Хорошее поведение - явно сказать, что основания недостаточно, либо не раскрывать недоступный текст. Не оценивайте отказ как ошибку только за то, что он не дал удобный ответ. Уточните, показывает ли интерфейс причину ограничения, не раскрывая заголовок или содержание закрытого документа.
Результат: Проверены пробелы корпуса и права пользователя.Посчитайте ошибки по тяжести
Считайте отдельно неверные цитаты, пропущенные источники, неподкрепленные выводы, устаревшие версии и ошибочные отказы. Присвойте критичность: косметическая, мешающая работе, способная привести к неправильному действию. Средний балл скрывает редкие опасные ошибки, поэтому указывайте и количество критичных случаев. Покажите знаменатель: долю безошибочных ответов считайте только от проверенных запросов нужного типа.
Результат: Таблица метрик с объемом выборки и критичностью.Повторите тест после изменения корпуса
Сохраняйте неизменную контрольную часть набора и несколько свежих вопросов для новых документов. После изменения индекса, модели или системной инструкции повторяйте оба слоя оценки. Сравните, какие ошибки исчезли, какие появились и не ухудшились ли ответы на прежних типах запросов. Ограничьте хранение текстов запросов и фрагментов сроком, установленным правилами организации.
Результат: Версионный отчет, пригодный для сравнения релизов.Шаблон задания для ИИ
Подготовь таблицу проверки ответа RAG-системы. Контекст пользователя: [роль и права]. Вопрос: [вопрос]. Ответ: [ответ]. Переданные системой источники и выдержки: [фрагменты с идентификаторами и датами]. Эталонные материалы: [ссылки или выдержки]. Для каждого отдельного утверждения укажи подтверждение, частичность, противоречие или отсутствие основания. Не добавляй факты из внешних знаний. Отметь устаревшие документы, ограничения доступа и случаи, когда корректнее отказаться от ответа. Не объявляй проверку завершенной, если нет эталона.
Проверка перед применением
Что чаще всего портит результат
Принимать подсказку за подтвержденный факт
Оставьте ссылку на исходную запись и поручите владельцу данных подтвердить существенное утверждение.
Скрывать исключения и неопределенность
Выведите неизвестные поля и случаи без надежного основания в отдельную очередь ручной проверки.
Короткие ответы
Можно ли сразу автоматизировать принятие решения?
Начните с подготовки черновика или очереди проверки. Автоматическое действие допустимо только после проверки ошибок, прав доступа и процедуры отмены.
Как оценить, полезен ли процесс?
Сравните время обработки, долю исправлений, число пропусков и серьезность ошибок на сопоставимых случаях. Зафиксируйте базовый уровень до запуска.
Коротко
Качество ответа с источниками нельзя измерить одним вопросом «похоже ли это на правду». Проверяйте цепочку от доступа и поиска до каждого вывода, сохраняйте версию корпуса и учитывайте тяжесть ошибки. Такой тест помогает найти конкретный этап для исправления, но не заменяет владельца знаний и эксперта по содержанию. Дополнительно проверяйте границы фрагмента и соседний контекст. Индекс может вернуть отдельный абзац без определения термина, таблицы или сноски, которая меняет смысл. Для длинного документа сохраните путь от ответа к странице, заголовку раздела и исходной версии файла. Если в наборе есть политики с датой вступления в силу, разметьте старый и новый документ как разные эталоны и явно задайте контрольную дату запроса. Полезно отдельно проверить, не цитирует ли система документ, который пользователю недоступен по роли. При изменении прав важна не только корректность текста, но и отсутствие утечки заголовка, имени проекта или краткого фрагмента закрытого источника. Для приемки удобно вести журнал ошибок с полями: вопрос, версия индекса, найденные фрагменты, ответ, тип сбоя и последующее действие. Такая запись позволяет сравнить настройки до и после изменения чанкинга или ранжирования. Не объединяйте в одну метрику отсутствие цитаты, ссылку на нерелевантный фрагмент и неверный вывод при верном источнике: у этих ошибок разные причины и способы исправления. Утвердите порог ручной эскалации до запуска, чтобы команда не меняла его под впечатлением от удачных примеров.