RAG-системы для бизнеса под ключ
Собираю Retrieval-Augmented Generation поверх вашей корпоративной базы знаний: документы, регламенты, прайсы, переписки. LLM перестаёт галлюцинировать и отвечает с цитатами из ваших файлов. Стек подбираю под объём данных и требования к данным.
корп-данных
ответа end-to-end
в индексе без деградации
в on-premise варианте
Что вы получаете на выходе
Не презентация, не идея, не пилот. Работающая система, которая делает работу за людей с фиксированной точностью.
Симптомы что вам нужен RAG, а не голый ChatGPT
У вас сотни регламентов, тысячи КП и переписок. Любой LLM без вашей базы галлюцинирует и придумывает несуществующие пункты договоров. Это лечится только retrieval-слоем.
Сотрудники по 20 минут ищут ответ в файлах
База знаний в Confluence, Google Drive, на сетевом диске и в чатах. Простой вопрос «какие условия для дилеров категории B» — это полчаса поиска и звонок коллеге.
ChatGPT галлюцинирует на ваших данных
Спросили про условия гарантии — выдумал. Спросили цену — назвал из воздуха. Голая LLM не знает ваших регламентов и не должна знать.
База знаний разрослась до тысяч документов
PDF-инструкции, DOCX-регламенты, XLSX-прайсы, MD-факи, переписки. Без векторного поиска полнотекстовый Elasticsearch уже не вытягивает.
Юристы и инженеры дублируют ответы клиентам
Один и тот же вопрос про условия договора отрабатывают вручную по 30 раз в месяц. Сводки нет, кэша ответов нет, накопления знаний нет.
Документы регулярно обновляются
Прайсы меняются раз в неделю, регламенты — раз в квартал. Любой статичный fine-tuned LLM устаревает через месяц и переобучать его дорого.
Данные нельзя отдавать в облако
152-ФЗ, NDA с клиентами, банковская тайна, медицинские карты, госконтракт. OpenAI и даже YandexGPT не подходят — нужно on-premise.
7 слоёв архитектуры production-RAG
RAG это не «LangChain в Jupyter». Production-система состоит из 7 слоёв, и каждый влияет на качество. Сэкономили на ретривере — получили выдумки. Сэкономили на ranker — получили нерелевантный топ.
Парсинг и нормализация
PDF (Unstructured, PyMuPDF, marker), DOCX, XLSX, MD, HTML, transcript звонков. Извлекаю таблицы, картинки с OCR (Tesseract / GOT-OCR), сохраняю структуру разделов.
Нарезка на смысловые блоки
Recursive по структуре документа (заголовки → параграфы), semantic chunking (граница на смене темы), late chunking для длинных контекстов. Размер 200-800 токенов с overlap 50-100.
Векторизация чанков
multilingual-e5-large, BGE-M3, GigaChat-Embeddings, OpenAI text-embedding-3. Выбор по языку, бюджету и доступности. BGE-M3 хорош для рус+англ смешанных корпусов.
Хранение и индексация
pgvector (если уже есть Postgres), Qdrant (быстрее и фичастее для production), Milvus (для миллиардных корпусов). Индекс HNSW или IVFFlat в зависимости от объёма и QPS.
Гибридный поиск
BM25 (лексический) + cosine similarity (семантический) + reciprocal rank fusion. Достаём top-20 кандидатов. Чистый vector-only теряет точные совпадения артикулов и аббревиатур.
Переранжирование top-N
CrossEncoder ru-en-MiniLM или Cohere Rerank пропускает top-20 через тяжёлую модель и выдаёт top-5. Этот слой даёт +10-20 п.п. к recall@5, ничего не меняя в индексе.
Генерация с цитатами
GigaChat-2-Max, YandexGPT-5-Pro, Llama-3.3-70B, Qwen 2.5 72B selfhosted. Prompt с контекстом и инструкцией цитировать источники. Faithfulness-проверка вторым проходом.
Какие задачи решает RAG в SMB
Конкретные сценарии. Под каждый сценарий — отдельный подбор стека, потому что требования к latency, точности и стоимости разные.
AI-поиск по корп-документам
Сотрудник в Telegram или Slack пишет «условия для дилера категории B на электроинструмент» — получает ответ с цитатами из 3 регламентов и ссылками на исходные PDF.
AI-ассистент 1-й линии
Бот в WhatsApp/Telegram отвечает на FAQ из вашей базы знаний с точностью 90%+. Не знает ответа — честно говорит и эскалирует на человека с собранным контекстом.
Анализ договоров и КП
Загрузили 200 договоров поставщиков — система отвечает «у кого штрафы за просрочку выше 0.5% в день» с указанием конкретных пунктов и страниц.
Подбор кейсов и аргументов
Менеджер пишет «есть кейс ритейла на 50+ магазинов с интеграцией 1С» — получает 3 релевантных кейса с цифрами, цитатами клиентов и ссылкой на презентацию.
Поиск по тикетам и инструкциям
Инженер 2-й линии в Jira пишет «ошибка E-04 на принтере Kyocera M4125» — получает 4 закрытых тикета с решениями и фрагмент сервис-мануала на странице 87.
Драфты статей на базе ваших данных
Маркетолог пишет «нужна статья про автоматизацию склада с упором на наши кейсы» — система собирает фактуру из CRM, ТЗ, кейсов клиентов и даёт draft с источниками.
Что уже сделано
Без имён клиентов (NDA), но цифры и стек реальные.
RAG по 47 тыс. документов для отдела продаж
Парсинг 47 832 документов (паспорта, КП, гарантии, прайсы), индекс в pgvector с BGE-M3, reranker MiniLM, генерация через GigaChat-2-Max. Менеджеры в Telegram-боте получают ответ с цитатами и ссылкой на PDF.
On-prem RAG по 12 000 договоров клиентов
Qdrant + multilingual-e5-large + Qwen 2.5 72B на 2×A100, всё в защищённом контуре клиента. Юристы загружают пакет договоров — система находит спорные пункты, нестандартные условия, противоречия с регламентами.
AI-ассистент техподдержки на сайте
RAG поверх 3200 страниц документации, сервис-мануалов и базы тикетов в Jira. Ассистент на сайте отвечает на типовые вопросы по эксплуатации оборудования с цитатами из мануалов и ссылками на видеоинструкции.
Сколько это стоит
Фиксированная цена за фиксированный объём. Без часов разработчика и сюрпризов в счёте.
RAG MVP на одной коллекции
- 1 коллекция до 5 000 документов
- pgvector + BGE-M3 + GigaChat
- Hybrid search (BM25 + vector)
- Telegram-бот или web-виджет
- Парсинг PDF/DOCX/MD
- Базовый бенчмарк качества
- 60 дней гарантии
Production-RAG с reranker и CRM
- Всё из «Старт»
- Qdrant с payload-фильтрами
- CrossEncoder reranker
- OCR таблиц и сканов
- Incremental update по webhook
- Интеграция с AmoCRM/Bitrix24/Jira
- Дашборд качества (recall@k, MRR)
- 90 дней гарантии + 1 мес поддержки
On-premise RAG для регулируемых отраслей
- Всё из «Средний»
- Полный on-premise в вашем контуре
- Selfhost LLM (Qwen/Llama/Saiga) на GPU
- Late chunking + semantic chunking
- Multi-collection с правами доступа
- Соответствие 152-ФЗ / банк / медицина
- Аудит-логи и мониторинг качества
- Технический партнёр первые 3 мес
Частые вопросы
То, что чаще всего спрашивают перед стартом.
Чем RAG отличается от fine-tuning LLM на моих данных
Fine-tuning «вшивает» знания в веса модели — это дорого (от 200 тыс. ₽ за один прогон на серьёзном корпусе), долго (дни-недели) и плохо подходит для часто обновляемых данных. Любое изменение прайса или регламента требует переобучения. RAG же оставляет LLM нетронутой и подаёт ей актуальный контекст из вашей базы прямо в промпт. Обновили документ — через 30 секунд он уже доступен в поиске. Для 95% бизнес-задач RAG правильнее и в разы дешевле. Fine-tuning имеет смысл только если нужен особый стиль ответов или работа в очень узком домене с большим объёмом примеров.
Какую векторную базу выбрать: pgvector, Qdrant или Milvus
pgvector — если у вас уже есть PostgreSQL и объём до 1-2 млн чанков. Не нужно поднимать отдельный сервис, всё в одном Postgres, бэкапы и репликация из коробки. Qdrant — отдельный сервис на Rust, заметно быстрее на больших объёмах, есть payload-фильтры, гибридный поиск из коробки, удобное API. Берём для production от 1 млн чанков и QPS > 50. Milvus — для миллиардных корпусов, кластер, distributed. В SMB почти никогда не нужен. Чаще всего стартуем на pgvector и мигрируем на Qdrant если упираемся в потолок.
Что лучше для русского языка: BGE-M3, multilingual-e5 или GigaChat-Embeddings
BGE-M3 — лучший открытый выбор для рус+англ смешанных корпусов, есть dense+sparse+colbert в одной модели, можно selfhost на CPU/GPU. multilingual-e5-large — старая рабочая лошадка, чуть слабее BGE-M3 но проще в эксплуатации. GigaChat-Embeddings — российский облачный вариант, удобно для on-cloud решений в РФ-юрисдикции, но ограниченный размер запроса и зависимость от API. OpenAI text-embedding-3-large формально лучший по бенчмаркам, но недоступен напрямую из РФ и не подходит для конфиденциальных данных.
Зачем нужен hybrid search если есть vector
Vector search хорошо находит семантически близкое («сломалась стиральная машина» = «не работает стиралка»), но проваливается на точных совпадениях: артикулы, аббревиатуры, имена, номера статей закона. Запрос «договор 152-ФЗ ст. 6 п.4» по чистому vector найдёт «персональные данные» вообще, а нужна именно эта статья. BM25 (классический полнотекстовый поиск) ловит точные совпадения. Гибрид BM25 + vector + reciprocal rank fusion стабильно даёт +5-15 п.п. к recall и закрывает кейс, где чистый vector ломается.
Что такое reranker и стоит ли он того
Retriever достаёт top-20 кандидатов быстро (миллисекунды), но среди них релевантность размазана. Reranker — это вторая, более тяжёлая модель (CrossEncoder), которая принимает пару (запрос, чанк) и выдаёт точный скор релевантности. Прогоняем 20 кандидатов через reranker и берём top-5 в контекст LLM. Цена: +50-200ms к latency, +10-25 п.п. к recall@5 и точности ответов. На наших проектах reranker — must-have, без него RAG проигрывает Elasticsearch по релевантности.
Какие стратегии chunking использовать
Fixed-size (200/500/800 токенов с overlap 50-100) — самый простой и часто достаточный вариант. Recursive по структуре документа (заголовки → параграфы → предложения) — лучше для регламентов и инструкций с чёткой иерархией. Semantic chunking (граница на смене темы по embedding-расстоянию) — для длинных монолитных текстов без структуры (транскрипты звонков, статьи). Late chunking (Jina-late-chunking, 2024) — для больших контекстов где важна связность всего документа. Подбираем под тип данных, иногда комбинируем разные стратегии для разных коллекций.
Как оценить качество RAG объективно
Ставим бенчмарк до запуска: 100-300 размеченных пар (вопрос → правильный документ + правильный ответ). На retrieval мерим recall@k (есть ли нужный документ в top-k) и MRR (mean reciprocal rank — где в выдаче нужный документ). На генерации мерим faithfulness (ответ цитирует контекст и не выдумывает) и answer relevance (ответ по делу). Используем RAGAS, TruLens, Ragas-Eval. После каждого изменения retrievera/reranker/chunking прогоняем бенчмарк и видим динамику в числах, а не на глаз.
Как обновляется база при изменении документов
Делаем 2 пайплайна: full-rebuild (раз в неделю/месяц, полная переиндексация) и incremental (по webhook/CDC на изменение файла или записи в CMS). Каждый чанк хранит hash исходного блока и метаданные (source_file, updated_at, version). При обновлении документа находим связанные чанки, переэмбеддим только их и обновляем индекс. На корпусе до 100 тыс. документов это занимает секунды, на больших — минуты. Старые версии можно держать в архивной коллекции для аудита.
RAG-as-a-Service vs self-hosted — что выбрать
Cloud (OpenAI Assistants, Yandex Search API, Gigachat + Embeddings cloud) — быстро запуститься, минимум инфры, плата по запросам. Подходит для проектов до 10к запросов в месяц и нечувствительных данных. Self-hosted (vLLM + Qdrant + BGE-M3 на ваших серверах) — выше начальная стоимость (от 200 тыс. ₽ на железо + настройка), но дешевле на больших объёмах, нет утечек, нет зависимости от внешнего провайдера. Граница окупаемости — обычно около 50-100к запросов/мес. Для регулируемых отраслей (медицина, банк, госконтракт) self-hosted безальтернативен.
Сколько данных нужно чтобы RAG заработал
Технически RAG работает уже от 50-100 документов, но смысл появляется от 500-1000 (где ручной поиск становится мучительным). Верхней границы практически нет: на pgvector комфортно работает до 1-2 млн чанков, на Qdrant — десятки миллионов, на Milvus — миллиарды. Важнее качества данных чем количество: 5000 хорошо структурированных регламентов лучше чем 50 000 свалки PDF без OCR.
Что с 152-ФЗ и хранением персональных данных
Для строгого соответствия 152-ФЗ собираем on-premise или в защищённом российском облаке (Yandex Cloud КП-1/КП-2, VK Cloud, Selectel). Векторная БД, embeddings-модель и LLM — всё в РФ. Используем Qwen, Saiga, GigaChat, YandexGPT в selfhost. Для медицинских данных дополнительно — изоляция контура, аудит-логи, шифрование at-rest. Делаем это уже на нескольких клиниках и юрфирмах, есть отработанный плейбук.
Сколько времени отнимет у моей команды на запуск
Со стороны клиента: 2-3 часа на установочную встречу, 4-6 часов на сбор и передачу корпуса документов, 2-3 часа на размечание 100-200 эталонных пар «вопрос → правильный ответ» для бенчмарка. Дальше мы работаем сами, возвращаемся с MVP через 3-4 недели на тестирование. Полный запуск — 6-10 недель в зависимости от пакета.
Готовы обсудить вашу задачу?
Пришлите примерный объём документов (типы файлов и сколько штук), список из 10-20 типовых вопросов и требования по хранению (облако/on-prem). За 5 рабочих дней верну: рекомендованный стек, расчёт инфраструктуры на год и оценку бюджета.
Оставить заявкуСмежные решения Noltis
Задачи редко живут поодиночке - вот что чаще всего внедряют вместе с этим продуктом. Полный список - в каталоге продуктов.
- Локальные LLM на вашем сервереМодели в контуре компании, данные не уходят наружу
- Fine-tune LLM на ваших данныхМодель, обученная говорить языком вашего бизнеса
- MCP-серверы для бизнесаПодключение ИИ к вашим системам через инструменты
- Распознавание документов с ИИСканы, счета, накладные в структурированные данные
- AI-расшифровка встречТранскрипты, саммари и задачи из каждого созвона
- Внедрение AI под ключКомплексное направление: аудит, внедрение, поддержка