Как работает RAG
RAG решает фундаментальную проблему LLM: языковая модель знает мир по состоянию на дату обучения и не имеет доступа к вашему конкретному каталогу, ценам и наличию. RAG добавляет к LLM этап поиска по актуальной базе знаний.
Схема обработки запроса:
Запрос пользователя → Embedding запроса
↓
Векторный поиск в базе (Top-K документов)
↓
LLM: [системный промпт] + [найденные документы] + [запрос]
↓
Ответ пользователю
Всё происходит за одну задержку запроса — типично 500–2000 мс для полного цикла.
Компоненты RAG-системы
Индексация (offline):
— Документы каталога разбиваются на чанки — структурированные фрагменты (карточка товара, раздел FAQ, описание категории).
— Каждый чанк преобразуется в вектор через модель эмбеддингов.
— Векторы сохраняются в векторной базе данных вместе с метаданными (price, availability, category).
Поиск и генерация (online, на каждый запрос):
— Запрос пользователя переводится в вектор той же моделью.
— Система находит Top-K ближайших векторов (обычно 5–10 документов).
— Найденные документы + запрос передаются в LLM как контекст.
— LLM генерирует ответ, основанный на предоставленных данных.
Важно: качество RAG определяется качеством поискового этапа. Если нужный документ не попал в Top-K — LLM не сможет дать правильный ответ, сколько бы мощной она ни была.
RAG в e-commerce
В торговле RAG решает три задачи:
| Задача | Без RAG | С RAG |
|---|---|---|
| «Есть ли в наличии iPhone 15 Pro 256 ГБ?» | Галлюцинация или «не знаю» | Проверка реального наличия из каталога |
| «Посоветуй матрас для спины» | Общие рекомендации без привязки к ассортименту | Конкретные модели с ценами из каталога |
| «Чем отличается модель A от B?» | Смешивание характеристик | Сравнение на основе реальных карточек товаров |
Ограничения и практические нюансы
- Размер контекста: в промпт передаётся ограниченное число документов. При большом каталоге критично качество ранжирования на поисковом этапе.
- Актуальность: база знаний должна синхронизироваться с изменениями каталога (цены, наличие) — для e-commerce часто в реальном времени.
- Обработка «пустого» результата: если поиск не нашёл релевантных товаров, модель должна честно сообщить об этом, а не «придумывать» похожие.