Как это устроено
RAG расшифровывается как retrieval-augmented generation, поиск с последующей генерацией. Документы заранее режут на фрагменты и складывают в индекс: векторный, полнотекстовый или оба сразу. На запрос система достаёт несколько подходящих фрагментов, вставляет их в промпт и просит модель ответить со ссылкой на найденное.
Смысл в экономии: вместо всей базы знаний в контекстное окно попадают три-пять кусков по теме. Расход токенов падает, ответ остаётся привязан к источнику.
Где ломается
Качество ответа упирается в поиск. Если нужный фрагмент не попал в выдачу, модель ответит по памяти и прозвучит так же уверенно.
- Нарезка по количеству символов рвёт таблицы и куски кода посередине.
- Векторный поиск промахивается на точных запросах: артикулы, коды ошибок, имена функций.
- Индекс устарел, а исходный документ переписали месяц назад.
- В выдачу попали два противоречащих друг другу фрагмента, и модель выбрала первый.
Что смотреть при отладке
Логи выдачи важнее логов генерации: сначала убедитесь, что нужный фрагмент вообще нашёлся. Гибридная схема, где векторный поиск дополняется полнотекстовым, обычно закрывает промахи на точных совпадениях. Для AI-агента RAG снимает привычку тащить всю документацию в промпт при каждом запуске.