Новаком
AI

Как внедрить RAG-систему в компании: пошаговое руководство

Полный гайд по внедрению RAG: парсинг документов, чанкинг, эмбеддинги, векторная БД, retrieval, reranking, eval. Три варианта стека — от PoC до enterprise с 152-ФЗ.

Н
Новаком
2026-05-22 · 15 минут чтения

Что такое RAG и зачем он бизнесу

Retrieval-Augmented Generation (RAG) — архитектура, при которой LLM перед генерацией ответа получает релевантные фрагменты из корпоративной базы знаний. Модель не галлюцинирует «из головы», а опирается на конкретные документы.

Без RAG модель знает только то, на чём обучена. С RAG — она знает всё, что знает ваша компания: регламенты, инструкции, контракты, техническую документацию, историю переписки.

Типовые бизнес-задачи для RAG

ЗадачаПримерВыгода
Внутренний ассистент«Какой порядок согласования командировок?»Экономия 30–60 мин/день на HR
Техподдержка L1«Как сбросить пароль на маршрутизаторе X?»Снижение нагрузки на L2 на 40–60%
Юридический помощник«Какие штрафы за нарушение 152-ФЗ?»Быстрый поиск по 1000+ документов
Продуктовый ассистент«Чем тариф Pro отличается от Enterprise?»Ускорение цикла продаж
Онбординг сотрудников«Где найти шаблон NDA?»Самообслуживание с первого дня
Аналитика документов«Покажи все контракты с условием пеней»Часы работы юриста за секунды

Архитектура RAG-системы

Общая схема

┌─────────────────────────────────────────────────────┐
│                     INGESTION                        │
│                                                      │
│  Документы → Парсинг → Чанкинг → Эмбеддинг → VectorDB│
└─────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────┐
│                     RETRIEVAL                        │
│                                                      │
│  Запрос → Эмбеддинг → Поиск по VectorDB → Top-K     │
│                                                      │
│  (опционально: reranking, фильтрация, HyDE)         │
└─────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────┐
│                    GENERATION                        │
│                                                      │
│  System Prompt + Top-K чанков + Запрос → LLM → Ответ │
└─────────────────────────────────────────────────────┘

Компоненты

КомпонентЗадачаВарианты
Document LoaderЗагрузка файловPDF, DOCX, HTML, Confluence, Notion, Google Drive
Text SplitterНарезка на чанкиRecursiveCharacterTextSplitter, SemanticChunker
Embedding ModelПреобразование текста в векторOpenAI text-embedding-3, E5, BGE, GigaChat Embeddings
Vector StoreХранение и поиск векторовQdrant, pgvector, Pinecone, ChromaDB
RetrieverПоиск релевантных чанковSimilarity search, MMR, Ensemble, Multi-query
RerankerПереранжирование результатовCohere Rerank, cross-encoder, ColBERT
LLMГенерация ответаGPT-4o, Claude, GigaChat, YandexGPT
OrchestratorОркестрация пайплайнаLangChain, LlamaIndex, Haystack

Шаг 1: Подготовка документов

Источники данных

Первый вопрос — откуда берём данные. Типичные источники:

  • PDF — регламенты, инструкции, контракты (самый частый)
  • DOCX/DOC — внутренние документы
  • Confluence/Notion — база знаний команды
  • HTML — документация, help-центр
  • Markdown — техническая документация
  • CSV/Excel — справочники, прайсы
  • Email/Slack — история коммуникаций

Парсинг PDF — главная боль

PDF — самый проблемный формат. Текст может быть:

  • Реальным текстовым слоем (простой случай)
  • Сканированным изображением (нужен OCR)
  • Смесью текста, таблиц и изображений (нужен layout analysis)
ИнструментКогда использоватьКачество
PyPDF2 / pdfplumberЧистые текстовые PDFБазовое
Unstructured.ioСложные PDF с таблицами и layoutХорошее
Azure Document IntelligenceEnterprise-уровень парсингаОтличное
LlamaParsePDF с таблицами, графикамиХорошее
Tesseract + PaddleOCRСканированные документыЗависит от качества скана

Рекомендация: начинайте с Unstructured.io — покрывает 80% случаев. Для сканов добавляйте OCR-слой.

Шаг 2: Чанкинг — нарезка документов

Чанкинг — самый недооценённый этап. Неправильная нарезка убивает качество RAG сильнее, чем плохая модель.

Стратегии чанкинга

СтратегияКак работаетКогда использовать
По символам (fixed-size)Нарезка каждые N символов с overlapПростые текстовые документы
РекурсивнаяРазделение по абзацам, предложениям, словам (LangChain default)Универсальный вариант
СемантическаяРазделение по смысловым границам (эмбеддинг-кластеризация)Длинные документы со сменой тем
По заголовкамРазделение по H1/H2/H3 в Markdown/HTMLСтруктурированная документация
По таблицамОтдельный чанк для каждой таблицыДокументы с табличными данными

Параметры чанкинга

ПараметрРекомендацияПочему
Размер чанка500–1000 токеновСлишком маленький — теряется контекст. Слишком большой — разбавляется релевантность
Overlap50–200 токенов (10–20%)Предотвращает разрыв контекста на границах чанков
МетаданныеСохранять: имя файла, страница, заголовок разделаДля фильтрации и показа источников

Частые ошибки чанкинга

  1. Разрезать таблицу пополам — таблица без заголовков бесполезна. Решение: детектить таблицы и вынести в отдельный чанк
  2. Терять иерархию заголовков — чанк «Пункт 3.2.1» без контекста «Раздел 3: Безопасность» непонятен. Решение: добавлять breadcrumb в метаданные
  3. Одинаковый размер для всех документов — FAQ (короткие пары) и регламент (длинные разделы) требуют разных стратегий

Шаг 3: Эмбеддинги — превращаем текст в векторы

Эмбеддинг-модель кодирует текст в числовой вектор. Семантически близкие тексты получают близкие векторы.

Выбор модели эмбеддингов

МодельРазмерностьКачество (MTEB)СтоимостьРусский язык
OpenAI text-embedding-3-large3072Отличное$0.13/1M токеновХорошо
OpenAI text-embedding-3-small1536Хорошее$0.02/1M токеновХорошо
GigaChat Embeddings1024ХорошееВключено в тарифОтлично (нативный)
E5-large-v21024ХорошееБесплатно (self-hosted)Средне
BGE-M31024ОтличноеБесплатно (self-hosted)Хорошо (мультиязычная)
multilingual-e5-large1024ХорошееБесплатно (self-hosted)Хорошо

Для русского языка: GigaChat Embeddings или BGE-M3. Если нужен self-hosted и 152-ФЗ — BGE-M3 на своём сервере.

Важно: не менять модель после индексации

Эмбеддинги от разных моделей несовместимы. Если поменяли модель — нужно переиндексировать всю базу. Выбирайте модель до начала продакшена.

Шаг 4: Векторная база данных

Подробное сравнение — в нашей статье Сравнение векторных БД: Qdrant vs Pinecone vs pgvector. Здесь — краткая матрица для RAG.

СценарийРекомендация
PoC / прототипChromaDB (pip install, zero config)
Продакшен до 5M документовQdrant или pgvector
Уже есть PostgreSQLpgvector (один сервис для всего)
152-ФЗ, данные в РФpgvector на Yandex Managed PostgreSQL
Enterprise от 10M+Milvus или Qdrant cluster

Шаг 5: Retrieval — поиск релевантных чанков

Качество RAG на 70% определяется качеством retrieval. Если поиск не нашёл нужный чанк — LLM не поможет.

Стратегии retrieval

СтратегияКак работаетКогда использовать
Similarity searchCosine similarity между запросом и чанкамиБазовый вариант
MMR (Maximal Marginal Relevance)Баланс между релевантностью и разнообразиемКогда нужны разные аспекты темы
Multi-queryLLM генерирует 3–5 вариаций запроса, ищет по каждомуНеоднозначные запросы
HyDE (Hypothetical Document Embeddings)LLM генерирует гипотетический ответ, ищет по немуВопросы, далёкие от формулировок в базе
Ensemble (hybrid search)BM25 + vector search, объединение результатовМаксимальное качество
Parent Document RetrieverНаходит чанк, возвращает целый документ/разделКогда контекст шире одного чанка

Reranking — второй этап фильтрации

После retrieval топ-20 результатов можно пропустить через reranker — модель, которая точнее оценивает релевантность пары (запрос, документ).

RerankerКачествоСтоимость
Cohere RerankОтличное$1/1000 запросов
cross-encoder (ms-marco)ХорошееБесплатно (self-hosted)
ColBERT v2ОтличноеБесплатно (self-hosted)
FlashRankХорошееБесплатно (self-hosted)

Рекомендация: добавляйте reranking, если retrieval возвращает шумные результаты. Это улучшает качество на 10–25% при минимальных затратах.

Шаг 6: Генерация ответа

System prompt для RAG

Промпт определяет поведение модели. Минимальный шаблон:

Ты — ассистент компании [Название].
Отвечай ТОЛЬКО на основе предоставленного контекста.
Если в контексте нет ответа — скажи «Я не нашёл информацию по этому вопросу».
Указывай источник: название документа и раздел.

Контекст:
{context}

Вопрос: {question}

Выбор LLM

МодельКачество (RAG)Стоимость (1M токенов)152-ФЗКонтекст
GPT-4oОтличное$2.50 input / $10 outputНет128K
GPT-4o-miniХорошее$0.15 / $0.60Нет128K
Claude SonnetОтличное$3 / $15Нет200K
GigaChat ProХорошее~$1.50 (по тарифу)Да32K
YandexGPT ProХорошее~$1.20 (по тарифу)Да32K

Для проектов с 152-ФЗ: GigaChat Pro или YandexGPT Pro. Для максимального качества без ограничений — GPT-4o или Claude.

Шаг 7: Оценка качества (Evaluation)

RAG без метрик — чёрный ящик. Нужно измерять качество на каждом этапе.

Метрики RAG

МетрикаЧто измеряетИнструмент
Context PrecisionДоля релевантных чанков в Top-KRAGAS
Context RecallСколько нужных чанков нашёл retrievalRAGAS
FaithfulnessСоответствие ответа контексту (нет галлюцинаций)RAGAS, DeepEval
Answer RelevancyРелевантность ответа вопросуRAGAS
Answer CorrectnessПравильность ответа (сравнение с эталоном)RAGAS, ручная проверка

Золотой датасет

Создайте набор из 50–100 пар (вопрос, эталонный ответ, источник). Прогоняйте RAG через этот датасет при каждом изменении. Это ваш «тест-сьют» для RAG.

Мониторинг в продакшене

Что отслеживатьЗачемКак
Доля «не нашёл ответ»Выявляет пробелы в базе знанийЛогирование fallback-ответов
Средняя латентностьSLA для пользователейPrometheus / Grafana
Feedback пользователейРеальное качествоКнопки 👍/👎 в интерфейсе
Drift эмбеддинговДеградация качества со временемРегулярный прогон eval-датасета

Стек технологий: три варианта

Вариант 1: Быстрый старт (2–3 недели)

КомпонентТехнология
ФреймворкLangChain
EmbeddingOpenAI text-embedding-3-small
Vector DBChromaDB (dev) / pgvector (prod)
LLMGPT-4o-mini
UIStreamlit / Gradio

Стоимость: $50–200/мес (API)

Вариант 2: Продакшен (4–6 недель)

КомпонентТехнология
ФреймворкLangChain + LangSmith
EmbeddingBGE-M3 (self-hosted)
Vector DBQdrant (Docker)
LLMGPT-4o / Claude
RerankerCohere Rerank
UINext.js + API
МониторингLangSmith + Prometheus

Стоимость: $200–800/мес

Вариант 3: Enterprise / 152-ФЗ (6–10 недель)

КомпонентТехнология
ФреймворкLangChain / Haystack
EmbeddingBGE-M3 (self-hosted)
Vector DBpgvector на Yandex Managed PostgreSQL
LLMGigaChat Pro / YandexGPT Pro
Rerankercross-encoder (self-hosted)
UIКастомный фронтенд
ИнфраструктураYandex Cloud / Selectel
МониторингPrometheus + Grafana

Стоимость: $300–1500/мес (инфраструктура)

Типичные ошибки при внедрении RAG

  1. Пропустить чанкинг. Загрузить PDF «как есть» и надеяться. 60% качества RAG — в правильной нарезке документов.

  2. Не тестировать retrieval отдельно. Если поиск возвращает нерелевантные чанки — улучшение промпта или модели не поможет. Сначала fix retrieval.

  3. Слишком много чанков в контекст. Top-20 чанков — это шум. Начинайте с Top-3–5, добавляйте только если не хватает контекста.

  4. Забыть про метаданные. Без фильтрации по дате, отделу, типу документа поиск возвращает устаревшие и нерелевантные результаты.

  5. Не обновлять базу знаний. RAG с документами годовой давности хуже, чем без RAG. Настройте автоматическую синхронизацию с источниками.

  6. Игнорировать eval. Без метрик невозможно понять, стало лучше или хуже после изменений. Создайте eval-датасет до первого деплоя.

  7. Сразу строить сложную систему. Multi-agent RAG с reranking, query decomposition и self-reflection — это этап 3. Начните с простого retrieval + LLM, измерьте, улучшайте итеративно.

Что дальше

RAG — не разовый проект, а продукт с жизненным циклом. После запуска MVP начинается работа над качеством: улучшение чанкинга, добавление reranking, расширение базы знаний, мониторинг и eval.


Хотите внедрить RAG в вашей компании? Мы в Новаком проектируем и разрабатываем RAG-системы от архитектуры до продакшена.

РАЗРАБОТКА

Нужна похожая задача?

Обсудим вашу задачу и предложим решение за 30 минут.

Обсудить проект