Загрузка...

Блог

Серия: Что такое RAG-сервис и как с ним работать · статья 2 из 8

Как устроен RAG-сервис: запрос → поиск → ответ

Как устроен RAG-сервис: запрос → поиск → ответ

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

Со стороны интеграций цепочка часто начинается с POST /api/v1/query; в продукте тот же сценарий доступен из UI /chat/.

Цепочка от запроса до ответа

Пользователь задаёт вопрос. Сервис не отправляет его «как есть» в большую языковую модель. Сначала по базе знаний ищутся релевантные фрагменты, затем они вместе с вопросом передаются в модель. Модель генерирует ответ, опираясь на эти фрагменты; в интерфейсе показываются и ответ, и источники.

flowchart LR A[Вопрос пользователя] --> B[Эмбеддинг запроса] B --> C[Поиск по векторной БД] C --> D[Топ-N фрагментов] D --> E[Промпт + контекст] E --> F[LLM] F --> G[Ответ с цитатами]

Что такое эмбеддинги и векторный поиск

Чтобы искать «по смыслу», а не только по совпадению слов, тексты превращаются в векторы (числовые представления) — это и есть эмбеддинги. Запрос и документы (или их фрагменты) кодируются одной и той же моделью; близкие по смыслу тексты получают близкие векторы. Поиск по базе — это поиск ближайших векторов к вектору запроса: находятся самые релевантные фрагменты даже при другой формулировке.

Векторная БД хранит эмбеддинги документов и умеет быстро находить ближайших соседей. Популярные варианты — Qdrant, pgvector, Pinecone. RAG-сервис при индексации разбивает документы на чанки, получает для них эмбеддинги и сохраняет в векторной БД; при каждом запросе эмбеддинг запроса сравнивается с базой.

Гибридный поиск

Часто RAG объединяет векторный поиск и поиск по ключевым словам (например, BM25): так учитываются и смысл, и точные вхождения — команды, коды ошибок, имена конфигов. Результаты двух поисков объединяются (например, через RRF). Подробнее о выборе типа поиска — в статье RAG vs обычный поиск.

Роль промпта и цитирования

Найденные фрагменты подставляются в промпт к языковой модели вместе с инструкцией: отвечать только на основе этих фрагментов и указывать источники. Без чёткого системного промпта модель может «додумывать» или уходить в общие знания. Качественный RAG-сервис настраивает промпты так, чтобы ответ был привязан к документам, а в интерфейсе отображались ссылки на разделы или документы.

Компоненты RAG-сервиса

КомпонентРоль
Модель эмбеддинговПревращает запрос и тексты в векторы для поиска по смыслу
Векторная БДХранит эмбеддинги фрагментов, быстрый поиск ближайших
Поиск (векторный / гибридный)Отбор релевантных фрагментов по запросу
LLM (языковая модель)Генерирует ответ по фрагментам и системному промпту
ПромптыЗадают формат ответа и требование опираться на источники

Вывод: RAG-сервис проходит путь «вопрос → эмбеддинг → поиск по базе → отбор фрагментов → промпт + контекст → ответ с цитатами». Эмбеддинги и векторный поиск дают поиск по смыслу; LLM и промпты — связный ответ с привязкой к вашим документам.