Как работает 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 часто в реальном времени.
  • Обработка «пустого» результата: если поиск не нашёл релевантных товаров, модель должна честно сообщить об этом, а не «придумывать» похожие.