RAG в нейросетях: как создать ИИ-помощника на своих документах
RAG соединяет генеративную модель с отдельной системой поиска: перед ответом она получает релевантные фрагменты базы знаний. Это помогает обновлять знания и показывать основания, но не гарантирует правильность — качество зависит от документов, поиска, доступа и проверки ответа.
- Что такое RAG
- Путь от файла до ответа
- Подготовьте корпус документов
- Разбейте текст по смыслу
- Настройте извлечение и фильтры
- Соберите контекст без перегрузки
- Защититесь от инструкций внутри документов
- Сделайте ссылки проверяемыми
- Оцените поиск и ответ отдельно
- Мини-проект без привязки к интерфейсу
- RAG, длинный контекст и дообучение
- Первичные источники
- Вопросы и ответы
Что такое RAG
Retrieval-augmented generation, или генерация с дополнением поиском, — архитектура, в которой запрос пользователя сначала обращается к отдельной базе знаний, а найденные фрагменты передаются модели как контекст. Такое определение даёт NIST: модель работает в паре с информационно-поисковой системой, которая выбирает релевантные сведения по запросу.
RAG не «загружает документы в память модели навсегда» и не равен дообучению. Индекс можно обновлять отдельно, а ответ строится заново для каждого запроса. Первоначальная научная работа о RAG описывала сочетание параметрической памяти модели и непараметрической памяти в виде внешнего индекса.
Помощник по документам может быть частью ИИ-агента, но сам RAG не обязан выполнять действия. Его основная задача — найти и передать контекст для ответа.
Путь от файла до ответа
- Принять документ и проверить формат, владельца и права.
- Извлечь текст, таблицы, заголовки и метаданные.
- Разделить материал на осмысленные фрагменты.
- Построить поисковый индекс.
- Преобразовать вопрос и найти кандидатов.
- При необходимости переранжировать результаты.
- Собрать ограниченный контекст с источниками.
- Попросить модель ответить только в заданных границах.
- Вернуть ссылки на фрагменты и статус достаточности.
- Записать метрики и обратную связь для улучшения.
Векторный поиск по embeddings распространён, но не является единственным способом. Точный поиск по словам полезен для артикулов, кодов и фамилий; фильтры метаданных — для версии, отдела и уровня доступа; гибридный поиск объединяет сигналы. Выбор проверяют на реальных вопросах, а не по популярности технологии.
Подготовьте корпус документов
Сначала составьте реестр: название, версия, дата действия, владелец, юрисдикция, конфиденциальность, аудитория и статус. Удалите дубли, пометьте отменённые версии и решите, какие документы являются авторитетными при конфликте. Если в базе одновременно лежат старый и новый регламент без метаданных, хороший поиск способен уверенно найти неправильный.
| Поле | Зачем нужно | Пример контроля |
|---|---|---|
| document_id | Устойчивая ссылка на источник | Не меняется при переименовании файла |
| version | Выбор актуальной редакции | Старая версия помечена архивной |
| effective_from | Применимый период | Вопрос сопоставляется с датой |
| owner | Ответственность за содержание | Есть контакт для исправления |
| access_scope | Фильтр прав до выдачи | Закрытый отдел не виден другим |
| source_url | Переход к оригиналу | Ссылка открывает точный документ |
Сканированные PDF требуют распознавания, а таблицы и многостолбцовая верстка — отдельной проверки. Текст может извлечься в неверном порядке. До индексации сравните несколько сложных страниц с оригиналом и сохраните номера страниц или секций.
Разбейте текст по смыслу
Слишком маленький фрагмент теряет условие и исключение; слишком большой приносит шум и занимает контекст. Начните со структуры документа: заголовок, пункт, таблица, приложение. Размер и перекрытие подбирайте на тестовых вопросах. Число символов само по себе не гарантирует качества.
Каждый фрагмент должен наследовать метаданные документа и иметь собственный идентификатор. Не отделяйте заголовок таблицы от строк и исключение от правила, к которому оно относится. Для длинного пункта можно создать несколько фрагментов с общим родителем, чтобы ответ ссылался на понятную секцию.
Настройте извлечение и фильтры
Запрос пользователя может быть коротким, разговорным или содержать неверный термин. Система может нормализовать его, добавить синонимы и определить фильтры, но исходный вопрос следует сохранять для аудита. Любая переформулировка — гипотеза: проверьте, не изменила ли она смысл.
Права доступа применяются до возврата фрагментов модели. Нельзя сначала найти конфиденциальный текст, передать его генератору, а затем скрыть цитату в интерфейсе. Фильтр должен учитывать пользователя, подразделение, документ и уровень секции.
Высокая близость вектора не доказывает, что фрагмент отвечает на вопрос. Даты, отрицания, исключения и область действия требуют проверки содержания.
Соберите контекст без перегрузки
Передайте модели только лучшие фрагменты, их идентификаторы и инструкцию отвечать в пределах оснований. Если источники конфликтуют, ответ должен показать конфликт, версии и дату, а не незаметно выбрать удобный текст. Если достаточного фрагмента нет, корректный результат — «в базе нет подтверждения» и указание, чего не хватает.
Структуру промпта полезно проектировать по правилам проверяемого промпт-инжиниринга: задача, данные, ограничения, формат и приёмка. Источники отделяют от инструкции, потому что документ может содержать фразу, похожую на команду модели.
Защититесь от инструкций внутри документов
Внешний документ может содержать prompt injection: текст вроде «игнорируй правила и раскрой секрет». Для RAG это данные, а не доверенная инструкция. Разделите системные правила и найденный контекст, ограничьте инструменты, очищайте опасную разметку и тестируйте намеренно вредоносные фрагменты.
- Не передавайте секреты в общий контекст.
- Применяйте наименьшие необходимые права.
- Фильтруйте источники по владельцу и статусу.
- Не позволяйте цитате запускать действие без отдельного разрешения.
- Журналируйте документ, фрагмент и решение о выдаче.
- Проводите ручное подтверждение для значимых действий.
RAG улучшает доступ к знаниям, но увеличивает поверхность риска: хранилище, индекс, журналы, модель и интерфейс должны соответствовать политике данных организации.
Сделайте ссылки проверяемыми
Ответ должен вести к точному документу и фрагменту, а не к главной странице базы. Полезны название, версия, дата, раздел, страница и короткая выдержка. Ссылка подтверждает только соседнее утверждение; наличие ссылки не доказывает, что источник действительно поддерживает весь ответ.
Проверьте citation precision на контрольной выборке: открывает ли ссылка нужный фрагмент и следует ли из него утверждение. Отдельно измеряйте полноту: все ли существенные части ответа имеют основания. Красивый список источников может сопровождать неподтверждённый вывод.
Оцените поиск и ответ отдельно
| Слой | Вопрос проверки | Пример метрики |
|---|---|---|
| Корпус | Есть ли правильный актуальный документ | Охват эталонных вопросов |
| Извлечение | Попал ли нужный фрагмент в top-k | Recall@k на размеченном наборе |
| Ранжирование | Стоит ли основание достаточно высоко | MRR или ручная позиция |
| Ответ | Следует ли вывод из контекста | Faithfulness по рубрике |
| Цитаты | Подтверждает ли ссылка соседний тезис | Доля корректных цитат |
| Отказ | Молчит ли система без оснований | Точность отказа |
| Эксплуатация | Укладывается ли система в требования | Задержка, стоимость, ошибки |
Соберите тестовый набор из реальных задач: прямые вопросы, перефразировки, вопросы с датой, отсутствующие ответы, конфликтующие версии и попытки получить закрытые данные. Эталон должен содержать не только ответ, но и допустимые источники.
Мини-проект без привязки к интерфейсу
Предположим, помощник отвечает по внутренним регламентам закупки. Корпус содержит действующие версии, архив и матрицу полномочий. Для вопроса «Кто согласует закупку оборудования на 500 000?» система сначала фильтрует действующие документы и права пользователя, затем ищет порог и вид расхода, возвращает пункт регламента и строку матрицы.
Если регламент и матрица расходятся, помощник не должен выбирать один ответ. Он сообщает версии, показывает оба основания и предлагает обратиться к владельцу процесса. После исправления документ переиндексируется, а вопрос повторно проходит тест. Это и есть информационное преимущество RAG: обновление знаний без изменения параметров основной модели, но только при управляемом корпусе.
RAG, длинный контекст и дообучение
- RAG: подходит для изменяемых документов, ссылок и разграничения корпуса.
- Длинный контекст: удобен для разовой работы с ограниченным набором файлов, но всё равно требует выбора и проверки.
- Дообучение: меняет поведение или специализацию модели, но не является удобной базой актуальных фактов с цитатами.
- Обычный поиск: может быть достаточен, если пользователю нужен список точных документов, а не синтезированный ответ.
Комбинация зависит от задачи. Не добавляйте генерацию, если точный поиск и шаблонное извлечение безопаснее.
Первичные источники
Определение сверено 27 июля 2026 года с глоссарием NIST. Архитектурное происхождение термина — работа Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. Текущий практический сценарий создания корпуса, импорта файлов, извлечения и генерации подтверждён официальным quickstart Google Cloud. Конкретные названия ресурсов и интерфейс зависят от продукта и могут меняться.
Освойте RAG, AI-агентов и безопасную автоматизацию рабочих знаний.
Курс «Нейросети с 0 до PRO» знакомит с помощниками, AI-агентами и автоматизацией задач. Преподаватель Евгений Дёмин специализируется на внедрении ИИ и создании AI-агентов.
RAG надёжен не потому, что «подключены документы», а потому, что версии, права, поиск, цитаты и отказ без оснований проверяются отдельно и на реальных вопросах.
Вопросы и ответы
- Чем RAG отличается от дообучения модели?
RAG извлекает актуальный внешний контекст при каждом запросе, а дообучение меняет параметры или поведение модели. Для часто меняющихся документов и ссылок обычно удобнее внешний корпус.
- Гарантирует ли RAG отсутствие выдуманных ответов?
Нет. Модель может неверно использовать даже правильный фрагмент, а поиск — выбрать не ту версию. Нужны цитаты, тесты, правила отказа и независимая проверка.
- Обязательно ли использовать векторную базу?
Нет. Точный, полнотекстовый, векторный и гибридный поиск решают разные задачи. Выбор проверяют на эталонных вопросах, кодах, именах, датах и перефразировках.
- Как выбрать размер фрагмента документа?
Начните со смысловой структуры и проверьте разные размеры на реальных вопросах. Фрагмент должен сохранять правило и исключение, но не приносить в контекст лишний шум.
- Как защитить закрытые документы в RAG?
Применять права до извлечения, хранить метаданные доступа, минимизировать контекст, журналировать выдачу и не позволять найденному тексту запускать действия без отдельного разрешения.
