Представьте, что вам нужно найти ответ на конкретный вопрос — не в интернете, а внутри закрытой корпоративной базы: сотни PDF-файлов, таблиц Excel, презентаций и внутренних сайтов. Обычный поиск по ключевым словам даст кучу мусора или не найдёт ничего, если вы написали вопрос «не теми словами».
Именно для этого была создана технология RAG — Retrieval-Augmented Generation, или «поиск с последующей генерацией». Это не просто поиск и не просто ИИ — это их комбинация. Система сначала находит нужные фрагменты текста, а потом объясняет их на человеческом языке.
«Представьте опытного референта, который перед ответом на ваш вопрос сначала прочитал всю нужную документацию — и теперь говорит своими словами, но строго по источникам.»
1. Подготовка: документы превращаются в числа
Прежде чем отвечать на вопросы, система должна «прочитать» все документы и запомнить их особым образом. Это происходит один раз при первой загрузке файлов.
Шаг 1. Извлечение текста
Программа умеет читать практически любой формат: PDF, Word, Excel, PowerPoint, CSV-таблицы, HTML-страницы, даже исходный код. У каждого формата своя «читалка» — но на выходе всегда получается обычный текст.
Аналогия. Это как если бы вы получили стопку документов разного вида — газеты, рукописи, распечатки — и переписали всё в единый список. Формат не важен, важно содержание.
Шаг 2. Нарезка на фрагменты
Целый документ нельзя отдать ИИ целиком — это слишком много. Поэтому текст нарезается на чанки — небольшие смысловые кусочки по несколько абзацев. Но нарезка делается умно, не механически.
Сначала система определяет тип контента:
В зависимости от типа применяется разная стратегия нарезки:
- Таблица → режем по строкам, но копируем заголовок в каждый кусок (чтобы данные не потеряли контекст)
- Код → режем по пустым строкам между функциями/классами, не разрывая логику
- Обычный текст → ищем смысловые границы между темами (подробнее ниже)
Аналогия. Представьте, что вы готовите картотеку. Каждая карточка — один чанк. Вы не хотите, чтобы начало одной темы попало на карточку с концом другой. Поэтому вы аккуратно разделяете текст там, где меняется смысл.
Шаг 3. Семантическая нарезка: ищем смысловые границы
Для обычного текста нарезка делается не по символам, а по смыслу. Алгоритм разбивает текст на предложения, получает эмбеддинги каждого (подробнее о них — в следующем шаге) и ищет места, где смысл резко меняется.
Если сходство между двумя соседними предложениями резко падает — значит, тема сменилась. Здесь и проходит граница чанка.
Шаг 4. Превращение текста в числа (эмбеддинги)
Каждый фрагмент отправляется в специальную нейросеть, которая возвращает вектор — список из 1536 чисел. Этот вектор — математическое «описание смысла» фрагмента.
Аналогия. Представьте систему координат, где каждая тема — это направление в пространстве. «Бухгалтерия» — одно направление, «технологии» — другое. Текст про налоги окажется близко к «бухгалтерии». Два похожих по смыслу текста — близко друг к другу в этом пространстве, даже если написаны разными словами. Это и есть суть смыслового поиска.
Все векторы сохраняются в базу данных вместе с исходным текстом чанков. Подготовка завершена.
2. Поиск: как система находит нужное
Когда пользователь задаёт вопрос, начинается многоэтапный поиск. Просто сравнить слова — недостаточно. Система использует сразу несколько методов.
Шаг 1. Вопрос тоже превращается в вектор
Вопрос пользователя проходит через ту же нейросеть. Теперь у нас есть «математический портрет» вопроса — и мы можем искать похожие портреты среди чанков.
Шаг 2. Переформулировки вопроса
ИИ генерирует 3 разных версии вашего вопроса — с другими словами, но тем же смыслом. Это помогает найти фрагменты, которые используют иную терминологию.
Шаг 3. Двойной поиск — смысловой и по ключевым словам
Система ищет одновременно двумя способами:
Смысловой поиск (векторный): находит фрагменты, близкие по смыслу, даже с другими словами.
Поиск по ключевым словам (BM25): классический алгоритм, похожий на поиск Google. Хорошо находит точные совпадения, числа, имена.
Шаг 4. Объединение результатов через RRF
Результаты обоих поисков объединяются по формуле RRF (Reciprocal Rank Fusion) — она «голосует» между методами. Фрагменты, которые хорошо себя показали сразу в нескольких поисках, поднимаются наверх.
Аналогия. Представьте, что у вас два эксперта и каждый составил свой рейтинг нужных страниц. RRF — это как взять оба рейтинга и выдать победителя по сумме мест: кто стабильно высоко у обоих, тот и первый.
Шаг 5. Финальная фильтрация через ИИ (ре-ранкинг)
Топ-50 кандидатов отправляются ИИ с вопросом: «Какие из этих фрагментов реально полезны для ответа?» ИИ выбирает только самые релевантные — обычно 5–10 штук.
Особый случай: цитаты и точные числа
Если в вопросе есть число или фраза в кавычках — система принудительно включает все фрагменты с точным совпадением, независимо от рейтинга.
«Система знает, когда вы ищете конкретный факт — и ведёт себя иначе, чем когда вы просите объяснить принцип.»
3. Умные надстройки
Помимо базового поиска, система включает ряд продвинутых механизмов.
Иерархический поиск: сначала документ, потом фрагмент
Если документов очень много, полный перебор всех чанков был бы медленным. Система сначала находит нужные документы, а потом ищет фрагменты только внутри них.
Аналогия. Как искать в нужном ящике картотеки, а не перебирать все ящики подряд.
Итеративный поиск: несколько раундов
Если вопрос сложный («сравни А и Б» или «почему...»), одного поиска может не хватить. Система делает несколько раундов.
Расширение контекста: берём соседей
Когда нашёлся нужный фрагмент, система автоматически прихватывает соседние — если они по смыслу близки. Это помогает не потерять важный контекст вокруг ответа.
Разнообразие результатов (MMR)
Алгоритм MMR (Maximal Marginal Relevance) следит, чтобы выбранные фрагменты не повторяли друг друга. Если два куска говорят об одном — берётся только один.
HyDE: поиск через гипотетический ответ
ИИ сначала фантазирует: «Как мог бы выглядеть идеальный ответ?» — и ищет реальные фрагменты, похожие на эту фантазию. Помогает при нестандартных или абстрактных вопросах.
Кэширование повторных запросов
Если тот же вопрос уже задавали — система мгновенно отдаёт сохранённый результат без повторного поиска.
4. Финальный ответ
После того как лучшие фрагменты найдены, они передаются языковой модели вместе с исходным вопросом. Модель получает чёткую инструкцию: работать строго по источникам.
Это принципиально важно: ИИ здесь работает не как «всезнайка», а как переводчик — он берёт найденную информацию и излагает её понятным языком. Это защищает от «галлюцинаций» — когда ИИ выдумывает несуществующие факты.
Если ни одна модель не ответила (сбой, лимиты), система возвращает найденный контекст как есть — без потери данных:
Итоговая аналогия. Представьте двух специалистов. Первый — опытный библиотекарь, который мгновенно находит нужные страницы в тысячах книг. Второй — блестящий редактор, который читает эти страницы и объясняет суть простым языком. RAG — это их совместная работа.
Главное за 30 секунд
- Документы загружаются один раз. Система читает файлы, нарезает их на фрагменты и превращает каждый в математический «отпечаток смысла».
- Вопрос тоже получает свой «отпечаток». Система ищет фрагменты, чей смысл математически близок к вопросу — даже если слова другие. <3>Несколько методов поиска работают вместе. Смысловой поиск, ключевые слова, ИИ-фильтрация — результаты объединяются для максимальной точности.<4>ИИ строго по источникам составляет ответ. Никаких догадок — только то, что нашлось в документах, пересказанное понятным языком.
В результате пользователь получает точный ответ со ссылкой на источник — за секунды, вместо часов ручного поиска по документации.