RAG-системы — это способ научить ИИ отвечать не только «из памяти», но и с опорой на ваши документы, базы знаний, инструкции и свежие данные. Благодаря RAG чат-бот может заглянуть в нужные источники, найти факты и сформировать ответ, который гораздо лучше подходит конкретной компании, проекту или человеку.
Главная идея RAG: сначала найти нужную информацию, потом сгенерировать ответ.
В этой статье разберём, что такое RAG в ИИ простыми словами, как устроена его архитектура, зачем нужны векторные базы, чем RAG отличается от дообучения модели и как создать такую систему на практике. Будут схемы, примеры, таблицы и немного здорового юмора — потому что даже искусственный интеллект не должен объяснять всё языком инструкции к стиральной машине.
- Что такое RAG в ИИ
- Предыстория
- Идея
- Зачем нужна
- Расшифровка и перевод
- Простыми словами
- Что понимают под RAG
- Система
- Агент (ассистент)
- Поиск
- Как работает RAG-технология. Схема
- Архитектура RAG. Схема
- Почему нельзя дообучить LLM на наших данных
- Связь с AI first, MCP, ИИ-агентами
- Источники данных
- Загрузчики и парсеры
- Разбиение на фрагменты
- Эмбеддинги
- Векторное хранилище
- Поисковый модуль
- Переранжирование
- Генеративная модель
- Разновидности
- Graph RAG
- Agentic RAG
- Fusion RAG
- Advanced RAG
- Как создать RAG-систему
- Этап 1. Определить задачу и пользователей
- Этап 2. Собрать и подготовить данные
- Этап 3. Разбить документы на фрагменты
- Этап 4. Построить индекс
- Этап 5. Настроить поиск
- Этап 6. Сформировать промпт
- Этап 7. Добавить интерфейс и безопасность
- Этап 8. Тестировать и улучшать
- Использование и применение
- Корпоративная база знаний
- Служба поддержки
- Интернет-магазин
- Юридический помощник
- Помощник разработчика
- Векторные базы и RAG
- Как работает векторный поиск
- Косинусное сходство
- Как выглядит векторная база
- Зачем нужна векторная база
- Фреймворки
- LangChain
- LlamaIndex
- Haystack
- Что почитать
- RAG и генеративный ИИ — Денис Ротман
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
- Designing Machine Learning Systems — Chip Huyen
- Популярные вопросы
- Зачем компаниям технология RAG
- Зачем нужна RAG, если есть ChatGPT
- Что такое RAG-сценарий
- Из каких двух путей состоит архитектура RAG
- Передача данных в RAG
- Что позволяет боту технология RAG
Что такое RAG в ИИ
RAG — это технология, которая позволяет большой языковой модели обращаться к внешним источникам данных перед тем, как сформировать ответ. Модель не полагается только на сведения, полученные во время обучения, а получает дополнительный контекст: документы, страницы сайта, карточки товаров, записи CRM, регламенты и другие материалы.
Если обычная языковая модель отвечает на основе уже известных ей закономерностей, то RAG-система работает по принципу: «найди подходящие сведения и используй их в ответе». Это особенно важно для корпоративных данных, которые постоянно меняются и обычно не входят в общий набор данных для обучения публичной модели.
Предыстория
Большие языковые модели обучаются на огромных массивах текста. Они умеют продолжать фразы, объяснять сложные темы, писать письма и программный код. Но у такого подхода есть естественные ограничения: модель может не знать свежую информацию, не иметь доступа к закрытым документам или ошибаться в деталях.
Проблема стала особенно заметной в компаниях. Бизнес хочет спросить у ИИ: «Какие условия у нашего тарифа для клиентов из Казахстана?», «Как оформить возврат по внутреннему регламенту?» или «Какие товары сейчас есть на складе?». Универсальная модель не может надёжно ответить, если ей не передать актуальные данные.
RAG появился как практичный компромисс: не переобучать всю модель ради каждой новой папки с документами, а подключать нужные сведения во время работы.
Идея
Идея RAG состоит из двух основных действий. Сначала система выполняет поиск по подключённым источникам. Затем найденные фрагменты добавляются в запрос к языковой модели, и она формирует ответ с учётом этого контекста.
Упрощённая схема выглядит так:
- пользователь задаёт вопрос;
- система ищет релевантные фрагменты в базе знаний;
- найденные фрагменты передаются языковой модели;
- модель формирует понятный ответ;
- при необходимости система показывает ссылки на источники.
Зачем нужна
RAG нужна для повышения точности, актуальности и полезности ответов ИИ. Она позволяет дать модели доступ к данным, которых нет в её базовом обучении. Это могут быть внутренние документы организации, свежие новости, техническая документация или сведения из базы товаров.
На практике RAG особенно полезна в следующих случаях:
- служба поддержки — ответы по базе инструкций и FAQ;
- юридические отделы — поиск по договорам, законам и внутренним политикам;
- медицина — работа с клиническими протоколами при обязательной проверке специалистом;
- интернет-магазины — ответы о товарах, характеристиках и наличии;
- образование — объяснение материалов конкретного курса;
- разработка — поиск по API, документации и исходному коду.
Расшифровка и перевод
RAG расшифровывается как Retrieval-Augmented Generation. По-русски это обычно переводят как «генерация с дополнением найденной информацией» или «генерация, усиленная поиском». Термин выглядит солидно, но смысл у него вполне бытовой: сначала заглянуть в справочник, затем ответить.
Читается RAG обычно как «рэг». Иногда произносят по буквам — «эр-эй-джи», но в профессиональной среде чаще используют короткое «рэг». В названии есть три важных части:
| Часть | Английское слово | Смысл |
|---|---|---|
| R | Retrieval | Поиск или извлечение информации |
| A | Augmented | Дополнение контекстом |
| G | Generation | Генерация ответа |
Простыми словами
Представьте сотрудника, который хорошо умеет писать письма, но не помнит весь архив компании. Вы задаёте ему вопрос. Он открывает внутреннюю базу, находит несколько подходящих документов, читает их и составляет ответ. Вот этот сотрудник и есть условная RAG-система.
Без RAG модель похожа на очень эрудированного консультанта, который не может открыть интернет или внутреннюю папку. С RAG она получает «рабочий стол» с нужными документами. Правда, если документы лежат хаотично, названы «финал_точно_финал2.pdf», а внутри ещё и отсканированы вверх ногами, чудес не будет. Качество исходных данных по-прежнему имеет огромное значение.
Что понимают под RAG
Под RAG понимают не одну конкретную программу, а целый подход к построению ИИ-систем. В такой системе объединяются языковая модель, механизм поиска, хранилище данных, обработка документов и логика формирования ответа.
Важно отличать RAG от обычного чат-бота. Чат-бот может просто отправлять вопрос в языковую модель и показывать результат. RAG-бот сначала выполняет дополнительную работу: ищет подтверждения, выбирает нужные фрагменты и только потом обращается к генеративной модели.
Система
RAG-система — это связка компонентов, которые вместе обеспечивают поиск и генерацию. В минимальном варианте в неё входят загрузчик документов, модуль разбиения текста, модель эмбеддингов, векторная база и LLM.
В промышленной системе компонентов больше:
- источники данных — файлы, сайты, базы данных, API;
- очистка и нормализация документов;
- разбиение текста на фрагменты;
- создание векторных представлений;
- поиск подходящих фрагментов;
- проверка прав доступа;
- формирование контекста;
- генерация ответа;
- логирование и оценка качества.
Агент (ассистент)
RAG-ассистент — это пользовательский интерфейс системы. Им может быть чат-бот на сайте, помощник сотрудника, голосовой консультант или корпоративный интерфейс в мессенджере.
Ассистент не обязательно ограничивается одним поиском. Он может определить намерение пользователя, выбрать нужный источник, задать уточняющий вопрос, вызвать внешний API или передать запрос оператору. Поэтому RAG часто становится частью более сложного ИИ-агента.
Поиск
Поиск в RAG — это не всегда обычный поиск по ключевым словам. Современные системы могут искать по смыслу. Например, запрос «как вернуть сломанный товар» найдёт документ, где написано «порядок оформления рекламации», даже если слова «вернуть» там нет.
Для повышения качества часто используют гибридный поиск: одновременно применяют классический поиск по словам и векторный поиск по смыслу. Затем результаты объединяются, ранжируются и передаются языковой модели.
Как работает RAG-технология. Схема
Работу RAG удобно разделить на два больших контура: подготовку данных и обработку пользовательского запроса. Подготовка обычно выполняется заранее, а поиск и генерация происходят в момент обращения пользователя.
RAG работает не как «модель внезапно всё узнала», а как поисковая система, подключённая к генератору текста.
Схема процесса может выглядеть так:
Подготовка данных: Документы → Очистка → Разбиение на фрагменты → Эмбеддинги → Векторная база Ответ на вопрос: Вопрос пользователя → Эмбеддинг запроса → Поиск фрагментов → Ранжирование → Контекст + вопрос → LLM → Ответ со ссылками
На этапе подготовки система принимает документы в разных форматах: PDF, DOCX, HTML, TXT, таблицы или записи из базы данных. Затем она извлекает текст, убирает лишние элементы, делит материал на небольшие фрагменты и превращает каждый фрагмент в числовой вектор.
Когда пользователь задаёт вопрос, его запрос также преобразуется в вектор. Система сравнивает его с векторами документов и выбирает наиболее близкие. После этого выбранные фрагменты помещаются в контекст языковой модели.
Здесь есть важная тонкость: найденные документы не являются готовым ответом. Модель должна понять их содержание, сопоставить с вопросом, не добавить лишнего и сформулировать результат естественным языком. Поэтому качество зависит и от поиска, и от самой модели, и от настроек промпта.
Архитектура RAG. Схема
Архитектура RAG описывает, из каких компонентов состоит система и как между ними передаются данные. Простая архитектура может работать на одной машине, а корпоративная — включать отдельные сервисы загрузки, индексации, поиска, авторизации, аналитики и генерации.
Хорошая архитектура RAG учитывает не только интеллект модели, но и качество данных, безопасность, скорость и контроль доступа.
Общая схема выглядит следующим образом:
Источники данных
↓
Парсеры и загрузчики
↓
Очистка и разбиение документов
↓
Модель эмбеддингов
↓
Векторная база ← Метаданные и права доступа
Запрос пользователя
↓
Определение намерения
↓
Поиск и фильтрация
↓
Переранжирование результатов
↓
Промпт с контекстом
↓
Языковая модель
↓
Ответ, ссылки, оценка качества
Почему нельзя дообучить LLM на наших данных
Технически дообучить языковую модель на корпоративных данных можно. Но это не всегда лучший вариант. Дообучение требует подготовки датасета, вычислительных ресурсов, времени и регулярного повторения процесса при изменении информации.
Кроме того, дообучение не превращает модель в идеальную базу данных. Она усваивает закономерности и стиль, но не гарантирует точное воспроизведение каждого факта. Если в документе изменился тариф, должность или юридический пункт, модель может продолжить выдавать старую версию.
RAG чаще выбирают по следующим причинам:
- данные можно обновлять без нового обучения модели;
- источник ответа можно показать пользователю;
- проще удалять устаревшие документы;
- можно разделять доступ разных сотрудников;
- легче контролировать, какие материалы использовались.
Связь с AI first, MCP, ИИ-агентами
Подход AI first означает проектирование процессов с учётом того, что ИИ становится одним из основных инструментов работы. RAG помогает такому ИИ получать доступ к знаниям компании и отвечать не абстрактно, а в контексте конкретной организации.
MCP, или Model Context Protocol, можно рассматривать как стандартизированный способ подключать модели к инструментам и источникам данных. RAG отвечает прежде всего за поиск и передачу контекста, а MCP может упростить подключение файлов, баз, сервисов и функций.
ИИ-агент обычно способен планировать действия и пользоваться инструментами. В его арсенале RAG может быть отдельным инструментом: агент понимает, что вопрос требует поиска по внутренней базе, вызывает RAG-модуль, получает найденные сведения и использует их в дальнейшем сценарии.
Источники данных
Источниками могут быть внутренние и внешние данные: корпоративный портал, Wiki, CRM, ERP, электронная почта, сайт, облачное хранилище, база обращений или API. Для каждого источника важно понимать частоту обновления, формат и уровень конфиденциальности.
Лучше заранее определить владельца каждого набора данных. Если никто не отвечает за актуальность документов, RAG честно будет находить старые инструкции. ИИ тут не виноват: он не умеет угадывать, какой из двух конфликтующих регламентов «самый настоящий».
Загрузчики и парсеры
Загрузчик получает материалы из источников, а парсер извлекает из них текст и структуру. Для PDF нужно учитывать таблицы, колонтитулы, сканы и изображения. Для HTML — меню, рекламу и технические блоки. Для таблиц — связь между строками и столбцами.
Ошибки на этом этапе часто незаметны. Документ визуально выглядит нормально, но после извлечения превращается в набор слов без заголовков и связей. Поэтому после загрузки нужно проверять качество распознанного текста.
Разбиение на фрагменты
Чанкинг — это разделение большого документа на небольшие смысловые части. Слишком крупный фрагмент перегружает контекст, а слишком маленький теряет смысл. Обычно используют фрагменты размером от нескольких сотен до пары тысяч токенов, но универсального числа нет.
Хорошее разбиение учитывает заголовки, абзацы, списки и структуру документа. Иногда фрагменты делают с перекрытием, чтобы важная мысль не разрывалась на границе двух частей.
Эмбеддинги
Эмбеддинг — это числовое представление текста. Модель эмбеддингов превращает фразу, абзац или вопрос в массив чисел, отражающий смысл текста.
Фрагменты с похожим содержанием оказываются близкими в математическом пространстве. Благодаря этому система может найти ответ по смыслу, даже если формулировки вопроса и документа отличаются.
Векторное хранилище
Векторная база хранит эмбеддинги документов, сам текст или ссылку на него, а также метаданные: название файла, дату, автора, раздел и права доступа.
Она нужна для быстрого поиска ближайших векторов среди большого числа записей. В небольшой системе можно использовать обычную базу с расширением для векторного поиска, а в крупной — специализированное распределённое решение.
Поисковый модуль
Поисковый модуль получает запрос пользователя, преобразует его в вектор и находит похожие фрагменты. Дополнительно он может фильтровать результаты по языку, дате, подразделению, типу документа или уровню доступа.
На практике полезно использовать гибридный поиск: смысловой поиск отвечает за понимание темы, а поиск по ключевым словам помогает не потерять номера договоров, артикулы, имена и точные термины.
Переранжирование
Первичный поиск быстро выбирает несколько десятков кандидатов. Затем специальная модель-переранжировщик оценивает, насколько каждый фрагмент действительно отвечает на вопрос.
Переранжирование увеличивает точность, но добавляет задержку и расходы. Поэтому его обычно применяют после быстрого первичного поиска, а не вместо него.
Генеративная модель
Языковая модель получает вопрос, системные инструкции и найденные фрагменты. Её задача — сформировать ответ на основе переданного контекста, не выдавая неподтверждённые сведения.
В промпте обычно указывают правила: ссылаться на источники, честно говорить об отсутствии данных, не раскрывать закрытую информацию и отвечать в нужном стиле. Чем яснее инструкции, тем меньше вероятность, что модель начнёт импровизировать.
Разновидности
RAG бывает разным по сложности. Одни системы просто ищут несколько фрагментов и отправляют их в модель. Другие строят графы знаний, используют агентов, несколько поисковых стратегий и повторную проверку ответа.
| Разновидность | Главная особенность | Когда применять |
|---|---|---|
| Basic RAG | Один запрос — один поиск — один ответ | FAQ, простые базы знаний |
| Advanced RAG | Улучшенная обработка, фильтрация и ранжирование | Корпоративные документы |
| Graph RAG | Использование связей между сущностями | Сложные взаимосвязанные данные |
| Agentic RAG | Агент сам планирует поиск и действия | Многошаговые задачи |
Graph RAG
Graph RAG использует граф знаний, где узлами являются сущности, а связями — отношения между ними. Например, компания связана с сотрудником, сотрудник — с проектом, проект — с договором, а договор — с клиентом.
Такой подход полезен, когда ответ зависит не от одного абзаца, а от цепочки связей. Например: «Какие проекты ведут сотрудники отдела, работающие с клиентами из определённого региона?» Обычный поиск может найти отдельные документы, а граф помогает пройти по отношениям.
Agentic RAG
Agentic RAG предполагает, что ИИ-агент сам определяет, как искать ответ. Он может разбить вопрос на несколько подзадач, обратиться к разным базам, сравнить результаты и повторить поиск, если данных недостаточно.
Например, агент получает запрос о финансовом отчёте. Сначала он находит данные о продажах, затем проверяет валюту, обращается к API курса и только после этого формирует сводку. Это мощно, но требует контроля: чем больше самостоятельности, тем больше способов ошибиться.
Fusion RAG
Fusion RAG объединяет результаты нескольких поисковых запросов. Система может переформулировать исходный вопрос несколькими способами, выполнить поиск по каждому варианту, а затем объединить и ранжировать найденные документы.
Такой подход помогает, когда пользователь формулирует вопрос расплывчато. Например, запрос «почему не работает оплата» можно преобразовать в варианты про ошибку банковской карты, сбой платёжного шлюза и ограничения по региону.
Advanced RAG
Advanced RAG — это общее название для систем с улучшенной обработкой всех этапов. В них применяются качественные парсеры, структурное разбиение документов, гибридный поиск, переранжирование, фильтрация метаданных и проверка ответа.
Advanced RAG не является одной конкретной технологией. Это скорее инженерный уровень зрелости системы. Иногда простая архитектура с хорошими данными работает лучше сложной конструкции, собранной из десятка модных компонентов «потому что так написали в презентации».
Как создать RAG-систему
Создание RAG лучше вести поэтапно. Не стоит начинать с огромной платформы, если пока неизвестно, какие вопросы задают пользователи и где именно система ошибается.
Этап 1. Определить задачу и пользователей
Сначала нужно сформулировать, какую проблему решает система. «Сделать умного бота» — слишком расплывчатая цель. Лучше: «отвечать сотрудникам на вопросы по отпуску и командировкам» или «помогать операторам находить инструкции по возвратам».
Нужно определить аудиторию, типовые вопросы, допустимое время ответа, требования к конфиденциальности и критерии успеха.
Пример постановки:
Пользователи: сотрудники отдела продаж
Источники: регламенты, прайс-листы, FAQ
Задача: быстро находить условия тарифов
Критерий: ответ со ссылкой на актуальный документ
Ограничение: сотрудник видит только данные своего региона
Этап 2. Собрать и подготовить данные
На этом этапе собирают документы, удаляют дубли, отмечают устаревшие версии и приводят файлы к понятной структуре. Для каждого документа полезно хранить метаданные: дату обновления, подразделение, автора и уровень доступа.
Особое внимание нужно уделить документам с таблицами, сканам и изображениями. Если важная информация находится на картинке, обычный текстовый парсер её не увидит — понадобится OCR или мультимодальная модель.
Этап 3. Разбить документы на фрагменты
Разбиение следует тестировать на реальных вопросах. Если модель часто получает только половину нужного ответа, фрагменты слишком маленькие или границы выбраны неудачно.
Хороший фрагмент обычно содержит законченную мысль и понятный заголовок. Полезно добавлять к тексту название документа и раздел, чтобы модель понимала контекст.
Этап 4. Построить индекс
Каждый фрагмент преобразуют в эмбеддинг и сохраняют в векторную базу. Одновременно можно создать обычный текстовый индекс для поиска по точным словам.
На выходе получается индекс, который позволяет найти нужные фрагменты по смыслу, словам и метаданным. Здесь важно сразу продумать обновление: новые документы должны добавляться, а старые — деактивироваться или удаляться.
Этап 5. Настроить поиск
Настройте количество найденных фрагментов, фильтры и порог релевантности. Слишком много фрагментов перегружают контекст, а слишком мало могут оставить модель без важной детали.
Проверьте поиск на тестовом наборе вопросов. Для каждого запроса заранее определите, какие документы считаются правильными. Так можно измерять не впечатление от демонстрации, а реальные показатели.
Этап 6. Сформировать промпт
Промпт должен объяснять модели, как использовать контекст. Например: отвечать только на основе найденных источников, указывать неопределённость, не придумывать факты и приводить ссылку на документ.
Также задайте стиль ответа: краткий или подробный, официальный или дружелюбный, с маркированными списками или без них.
Этап 7. Добавить интерфейс и безопасность
Пользователю нужен удобный интерфейс: чат, поиск, кнопки уточнения, ссылки на документы и возможность оценить ответ. Отдельно необходимо внедрить авторизацию и проверку доступа на уровне поиска.
Нельзя сначала показать модели все документы, а потом надеяться, что она сама «не расскажет лишнего». Ограничения должны применяться до формирования контекста.
Этап 8. Тестировать и улучшать
Проверяйте точность, полноту, скорость, стоимость, устойчивость к неоднозначным вопросам и способность признавать отсутствие ответа. Полезно вести журнал запросов и анализировать случаи, когда пользователи переформулируют вопрос.
Улучшение RAG — итеративный процесс. Иногда проблему решает новый эмбеддинг, иногда — другой размер фрагментов, а иногда выясняется, что нужного документа вообще нет.
Использование и применение
RAG применяется там, где нужно соединить естественный диалог с конкретными данными. Это не только чат-боты поддержки, но и внутренние поисковые системы, помощники аналитиков, консультанты по товарам и инструменты для разработчиков.
Корпоративная база знаний
Сотрудник задаёт вопрос обычным языком, а система ищет ответ в регламентах, инструкциях и корпоративной Wiki. Это сокращает время адаптации новых работников и снижает нагрузку на опытных коллег.
Пользователь: Как оформить командировку в другой регион? RAG находит: — регламент командировок; — шаблон заявления; — лимиты расходов; — порядок согласования. Ответ: Сначала заполните заявление в корпоративной системе, затем направьте его руководителю не позднее чем за 5 рабочих дней. Источник: Регламент командировок, редакция от 12.03.2025.
Служба поддержки
RAG помогает оператору быстро находить инструкции и готовить ответы клиентам. Система может подсказать последовательность действий, предупредить об исключениях и предложить ссылку на нужную статью.
Полезно разделять внутренний и внешний режимы. Оператору можно показать технические детали, а клиенту — только понятное объяснение без служебных комментариев.
Интернет-магазин
Ассистент может отвечать на вопросы о характеристиках товаров, совместимости, доставке и возврате. Для актуальных цен и остатков лучше подключать API, потому что векторная база не должна быть единственным источником быстро меняющихся данных.
Запрос: Подойдёт ли этот фильтр для модели X200 и когда его доставят? Поиск: 1. Характеристики фильтра → совместимость с X200. 2. API склада → наличие. 3. API доставки → срок по адресу клиента. Ответ: Да, фильтр совместим с X200. Сейчас он есть на складе. Ориентировочная доставка — 2–3 рабочих дня.
Юридический помощник
Юридический RAG может искать пункты договоров, сравнивать редакции документов и находить упоминания определённого условия. Но он не должен автоматически заменять юриста в вопросах, где цена ошибки высока.
Для юридических систем особенно важны цитаты, версии документов, дата действия нормы и точное указание источника. Ответ без подтверждения здесь похож на совет случайного пассажира в очереди: иногда полезно, но доверять без проверки рискованно.
Помощник разработчика
RAG может работать с документацией API, исходным кодом, задачами и внутренними стандартами разработки. Он помогает найти пример использования функции, объяснить ошибку или предложить место для изменения.
Запрос разработчика: Как в нашем SDK обновить токен доступа? Найдено: — документация AuthClient; — пример из репозитория; — ограничение версии SDK. Ответ: Используйте метод refresh_token(). Он доступен начиная с версии 3.4. Пример находится в auth/examples/refresh.py.
Векторные базы и RAG
Векторная база — один из ключевых элементов RAG. Она помогает быстро находить фрагменты, похожие на пользовательский запрос по смыслу.
Важно понимать: векторная база не является «мозгом» системы. Она не рассуждает и не пишет ответы. Её задача — быстро показать, какие материалы могут пригодиться языковой модели.
Как работает векторный поиск
Сначала текст проходит через модель эмбеддингов и превращается в набор чисел. Например, фразы «возврат товара» и «как вернуть покупку» будут представлены близкими векторами, потому что имеют похожий смысл.
Когда приходит новый запрос, система сравнивает его вектор с векторами документов. Наиболее близкие записи попадают в список результатов.
Косинусное сходство
Косинусное сходство измеряет угол между двумя векторами. Чем меньше угол, тем больше смысловая близость. Значение обычно находится от -1 до 1, хотя для многих моделей практический диапазон и интерпретация зависят от типа эмбеддингов.
Упрощённая формула выглядит так:
cos(A, B) = (A · B) / (|A| × |B|)
Здесь A и B — векторы, A · B — их скалярное произведение, а |A| и |B| — длины векторов. Человеку не обязательно считать это вручную: библиотека сделает всё сама, пока разработчик не забудет подключить нужную модель.
Как выглядит векторная база
| ID | Текстовый фрагмент | Вектор | Метаданные |
|---|---|---|---|
| doc_001 | Правила возврата товара… | [0.12, -0.44, 0.81, …] | FAQ, дата, отдел продаж |
| doc_002 | Порядок оформления рекламации… | [0.09, -0.39, 0.78, …] | Регламент, юридический отдел |
| doc_003 | Условия гарантии… | [0.22, -0.21, 0.65, …] | Инструкция, сервис |
В реальной записи также могут храниться полный текст, ссылка на файл, координаты страницы, версия документа, язык и права доступа. Вектор без оригинального текста бесполезен: по одним числам модель не сможет показать пользователю понятную цитату.
Зачем нужна векторная база
Она позволяет искать не только точные совпадения слов, но и близкие по смыслу фрагменты. Это особенно важно для естественных вопросов, где пользователь формулирует запрос иначе, чем автор документа.
Кроме того, векторная база быстро работает с большими объёмами данных. Но её нельзя считать заменой полноценной корпоративной базе. Для числовых расчётов, транзакций, остатков и строгих условий часто нужны SQL-запросы или API. Лучший вариант — комбинировать инструменты.
Фреймворки
Фреймворки упрощают сборку RAG-систем. Они предоставляют готовые компоненты для загрузки документов, разбиения текста, подключения моделей, работы с векторными базами и построения цепочек обработки.
Фреймворк ускоряет разработку, но не отменяет инженерную работу. Если документы плохого качества или поиск настроен неверно, никакая библиотека не превратит хаос в идеальную базу знаний.
LangChain
LangChain — популярный фреймворк для создания приложений на базе языковых моделей. Он поддерживает цепочки, агентов, инструменты, загрузчики документов, ретриверы и различные хранилища.
Его сильная сторона — большое количество интеграций и гибкость. Новичку поначалу может быть непросто разобраться в уровнях абстракции, но для прототипов и сложных агентных сценариев LangChain часто оказывается удобным выбором.
LlamaIndex
LlamaIndex ориентирован на подключение языковых моделей к внешним данным. Он предоставляет инструменты для индексации документов, построения поисковых структур, работы с разными источниками и создания RAG-приложений.
Фреймворк особенно удобен, когда основная задача — построить качественный слой доступа к данным. Он поддерживает разные типы индексов и может использоваться как в простых чат-ботах, так и в сложных системах поиска.
Haystack
Haystack — фреймворк для поиска, вопросно-ответных систем и RAG-приложений. Он предоставляет конвейеры, компоненты поиска, генерации, ранжирования и оценки качества.
Haystack часто выбирают там, где важны прозрачные пайплайны и возможность контролировать отдельные этапы обработки. Он хорошо подходит для систем, в которых поиск является центральной частью продукта.
Что почитать
Изучение RAG лучше сочетать с практикой: читать материалы по языковым моделям, пробовать простые прототипы и тестировать их на собственных документах.
RAG и генеративный ИИ — Денис Ротман
Книга Дениса Ротмана о RAG и генеративном ИИ может быть полезна как вводный материал для тех, кто хочет понять общую логику технологии без погружения в сложную математику с первой страницы.
При чтении стоит обращать внимание не только на примеры кода, но и на архитектурные решения: откуда берутся данные, как они обновляются, каким образом проверяется ответ и где применяются ограничения доступа.
Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
Это научная работа, связанная с формированием самого подхода RAG. Она помогает понять, почему объединение поиска и генерации стало важным направлением в обработке естественного языка.
Материал больше подходит читателям с технической подготовкой, но даже избирательное чтение полезно: оно показывает, что RAG — не просто модное название для чат-бота, а исследовательская и инженерная концепция.
Designing Machine Learning Systems — Chip Huyen
Книга посвящена проектированию систем машинного обучения. В ней много внимания уделяется данным, оценке качества, обновлению моделей, мониторингу и производительности — темам, без которых RAG быстро превращается из красивого прототипа в грустный демонстрационный стенд.
Она полезна для понимания всей инфраструктуры вокруг модели: хранения данных, экспериментов, метрик и эксплуатации в реальном продукте.
Популярные вопросы
Ниже собраны вопросы, которые чаще всего возникают у людей, впервые столкнувшихся с RAG. Короткие ответы не отменяют деталей из предыдущих разделов, но помогают быстро собрать общую картину.
Главное, что стоит запомнить: RAG — это не отдельная «волшебная нейросеть», а способ организовать взаимодействие между источниками данных, поиском и языковой моделью.
Зачем компаниям технология RAG
Компаниям RAG нужна для того, чтобы сотрудники и клиенты могли общаться с корпоративными знаниями на естественном языке. Вместо поиска по десяткам папок человек задаёт вопрос и получает ответ с опорой на документы организации.
Технология помогает экономить время, уменьшать нагрузку на поддержку, ускорять обучение сотрудников и делать внутренние знания более доступными. При этом необходимо контролировать актуальность документов и права доступа.
Зачем нужна RAG, если есть ChatGPT
ChatGPT хорошо работает с общими знаниями и умеет выполнять множество интеллектуальных задач. Но наличие ChatGPT само по себе не означает, что он знает ваши внутренние инструкции, актуальные остатки на складе или содержание закрытых договоров.
RAG подключает к языковой модели конкретные источники. Поэтому ChatGPT или другая LLM может быть генератором, а RAG — механизмом поиска и передачи корпоративного контекста.
Что такое RAG-сценарий
RAG-сценарий — это конкретный процесс, в котором пользователь задаёт вопрос, система ищет данные и модель формирует ответ. Например: сотрудник спрашивает о порядке отпуска, система находит актуальный регламент и показывает краткую инструкцию.
Сценарий может быть простым или многошаговым. В сложном варианте он включает уточнение вопроса, поиск в нескольких источниках, проверку прав доступа, вызов API и передачу результата оператору.
Из каких двух путей состоит архитектура RAG
Обычно выделяют два пути:
- путь индексации — документы загружаются, очищаются, разбиваются, преобразуются в эмбеддинги и сохраняются в хранилище;
- путь запроса — вопрос пользователя преобразуется в запрос, система ищет фрагменты, передаёт их модели и возвращает ответ.
Первый путь создаёт основу для поиска, второй используется при каждом обращении пользователя. Если плохо сделан путь индексации, исправить всё одним хорошим промптом не получится.
Передача данных в RAG
Данные передаются поэтапно: источник отдаёт документ загрузчику, загрузчик передаёт текст обработчику, обработчик создаёт фрагменты, модель эмбеддингов превращает их в векторы, а база сохраняет записи и метаданные.
Во время запроса пользовательский текст идёт в поисковый модуль. Найденные фрагменты передаются в контекст языковой модели. В защищённых системах перед этим выполняются фильтрация и проверка прав доступа.
Что позволяет боту технология RAG
RAG позволяет боту отвечать на основе конкретных документов, находить нужные сведения по смыслу, использовать актуальные данные, показывать источники и работать с закрытой базой знаний без полного дообучения модели.
Но RAG не гарантирует абсолютную безошибочность. Бот может неправильно понять вопрос, найти не тот фрагмент, столкнуться с противоречивыми документами или получить неполные данные. Поэтому в серьёзных системах нужны контроль качества, мониторинг, права доступа и возможность передать вопрос человеку.
