AI

RAG для строительной нормативной базы: как мы сократили цикл поиска по 50 000 документов на 74%

Как RAG-система сокращает время поиска на 74%: кейс строительной компании. Архитектура, внедрение, результаты и ROI — полный гайд.

VibeLab


Article imageBase64 view

Инженер-сметчик тратил в среднем 20 минут на поиск одного норматива в базе из 50 000 документов — с учётом проверки актуальности версии, перекрёстных ссылок и сверки с последними изменениями СП. После запуска RAG-пайплайна полный цикл «запрос → верифицированный ответ» сократился до 5 минут. Разбираем архитектуру, подводные камни с нормативной базой и честные метрики внедрения.

Проблема: 50 часов в день на поиск нормативов

Представьте: вам нужно найти актуальные требования к огнестойкости несущих конструкций для конкретного типа здания. Вы знаете, что ответ где-то в СП 2.13130 — но в какой редакции? Действует ли ещё СНиП 21-01-97*, на который ссылается проектная документация 2019 года? Не противоречит ли это новому своду правил, утверждённому в прошлом квартале?

Для инженеров и сметчиков строительной компании, с которой мы работали, этот сценарий повторялся десятки раз в день. База нормативных документов — более 50 000 файлов: действующие и архивные СНиП, СП, ГОСТ, внутренняя проектная документация, протоколы испытаний, заключения экспертизы. Часть — в формате PDF со сканов 90-х годов. Часть — в устаревших форматах Word. Единой поисковой системы не было: папки на сетевом диске, локальные копии у сотрудников, три разных справочных сервиса с перекрывающимися, но не совпадающими базами.

Около 30 специалистов ежедневно обращались к нормативной базе в среднем по 5 раз. Простые запросы — «найти конкретный пункт известного документа» — занимали 10 минут. Сложные — с проверкой актуальности, сверкой версий и перекрёстными ссылками — до 40 минут. Средняя длительность полного цикла поиска составляла около 20 минут. При 150 обращениях в день команда суммарно тратила 50 часов ежедневно только на поиск и верификацию нормативной информации.

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

Почему строительная нормативная база — особый вызов для ИИ

Строительные нормативы — не корпоративная wiki и не FAQ. Это юридически значимые документы, ошибка в интерпретации которых может привести к реальным последствиям: от штрафа на проверке до остановки строительства.

Три ключевых отличия от типичного корпоративного документооборота:

  • Юридическая ответственность за ответ. Если сметчик применит отменённый норматив — проект не пройдёт экспертизу. Цена ошибки — не «неудобство», а месяцы задержки и финансовые потери.
  • Сложная система перекрёстных ссылок. Один СП может ссылаться на десятки ГОСТов, которые, в свою очередь, ссылаются на другие СП. Ответ на простой вопрос иногда требует фрагментов из 3–4 документов.
  • Постоянные обновления с неочевидным статусом. Новый свод правил может заменить старый полностью, частично или с переходным периодом. Понять, какая версия действует на конкретную дату — отдельная задача.

Актуальность против архивных версий

В строительной нормативной базе документ не просто «старый» или «новый» — у него есть юридический статус: действующий, отменённый, заменённый, действующий с ограничениями, добровольного применения.

Мы решили это на уровне метаданных при индексации. Каждый документ в векторной базе хранит не только контент, но и:

  • Статус действия (активный / отменённый / заменённый)
  • Дату введения и дату отмены (если применимо)
  • Ссылку на заменяющий документ
  • Признак обязательности применения

При формировании ответа retrieval-слой приоритизирует действующие документы. Если в контекст попадает отменённый норматив, генеративная модель явно помечает это в ответе: «Внимание: СНиП II-3-79* отменён, заменён на СП 50.13330.2012 (актуализация 2020)».

Сканированные PDF и кириллица: почему стандартный пайплайн ломается

Около 15% документов в базе — сканы бумажных оригиналов. Качество варьируется от приемлемого до «штамп поверх текста, угол загнут, копия третьего поколения».

Стандартный подход «PDF → текст → чанки → эмбеддинги» здесь не работает:

  • OCR-ошибки в кириллице. Tesseract и аналогичные движки путают «е» и «ё», «з» и «э», а в таблицах теряют выравнивание колонок. Для технического текста, где «0,3» и «0,8» — критическая разница, это неприемлемо.
  • Таблицы нормативов. СНиПы и ГОСТы на 40–60% состоят из таблиц. Простой текстовый парсинг превращает структурированную таблицу в бессмысленный набор строк.
  • Качество эмбеддингов для русскоязычного технического текста. Большинство популярных эмбеддинг-моделей обучены на английском. Русскоязычные строительные термины и аббревиатуры (ПДК, МГСН, НПБ) попадают в «слепую зону» семантического поиска.

Мы использовали комбинированный OCR-пайплайн: первичное распознавание через облачный сервис с постобработкой специализированной моделью, обученной на строительной документации. Для таблиц — отдельный парсер, сохраняющий структуру «строка-колонка» в чанке.

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

Выбор стека определялся тремя жёсткими требованиями: работа с русскоязычными техническими текстами, обязательные ссылки на источники, разграничение прав доступа к документам.

КомпонентРешениеПочему именно это
Эмбеддинг-модельmultilingual-e5-large + дообучениеЛучшие результаты на русскоязычных технических текстах среди open-source моделей
Векторная БДQdrantПоддержка метаданных-фильтров (статус документа, уровень доступа), горизонтальное масштабирование
Основная LLMLLaMA 3.1 70B (on-premise)Требования к конфиденциальности, предсказуемая стоимость при высоком объёме запросов
Fallback LLMGPT-4o через Azure OpenAI с DPAДля сложных мультидокументных запросов, не содержащих конфиденциальных данных
ОркестраторLangChain + кастомные модулиЛогика приоритизации версий, маршрутизация запросов, валидация ответов
OCRОблачное распознавание + fine-tuned модельТочность на сканах строительных документов выше 95%

Пайплайн индексации 50 000 документов

Первичная индексация заняла 12 дней. Основное время ушло не на генерацию эмбеддингов, а на парсинг и подготовку документов:

  1. Парсинг. PDF, DOCX, сканы → структурированный текст с сохранением таблиц и метаданных.
  2. Обогащение метаданными. Автоматическое определение типа документа (СП, ГОСТ, внутренний регламент), статуса действия, связей с другими документами.
  3. Чанкинг. Разбивка на фрагменты по 512–1024 токена с перекрытием. Для таблиц — отдельная стратегия: таблица целиком как один чанк, если умещается в лимит, или разбивка по логическим блокам строк с сохранением заголовков.
  4. Эмбеддинги. Генерация векторных представлений с помощью дообученной multilingual-e5-large.
  5. Загрузка в Qdrant. С метаданными для фильтрации по статусу, типу, дате, уровню доступа.

Обновление при выходе новой версии СП автоматизировано: мониторинг источников → парсинг нового документа → обновление статусов связанных документов → переиндексация. Полный цикл обновления одного документа — от 3 до 15 минут.

Retrieval и генерация ответа

Каждый ответ содержит три обязательных элемента:

  • Номер и название документа (например, СП 20.13330.2016)
  • Конкретный пункт или таблица (п. 5.3.2, Таблица 3)
  • Дата актуализации и статус (действующий, ред. от 01.09.2025)

Пайплайн retrieval работает в два этапа. Сначала — семантический поиск по векторной базе с фильтрацией по метаданным (только действующие документы, только доступные пользователю). Затем — ре-ранкинг найденных фрагментов с учётом релевантности и авторитетности источника.

В промпте для генеративной модели жёстко зашита инструкция: если в извлечённых фрагментах нет достаточной информации для ответа — сообщить об этом, а не генерировать ответ «из головы». Эта механика — ключевая для снижения галлюцинаций. В строительной отрасли ответ «я не нашёл точного совпадения, вот ближайшие релевантные документы» в разы ценнее красивого, но неподтверждённого ответа.

5 подводных камней внедрения

1. Галлюцинации при конфликте версий

Когда в контексте оказывались фрагменты из двух версий одного СП — старой и новой — модель иногда «сшивала» требования из обоих. Например, брала числовое значение из отменённой редакции, а формулировку — из действующей.

Решение: жёсткая фильтрация на этапе retrieval. Если документ отменён и существует замена — отменённая версия не попадает в контекст, только в справочную ссылку.

2. Таблицы, которые не помещаются в чанк

Некоторые таблицы в ГОСТах занимают 5–7 страниц. Разбивка по строкам теряет контекст заголовков. Хранение целиком — превышает разумный размер чанка.

Решение: гибридный подход. Таблица хранится целиком в отдельном хранилище, а в векторной базе — её «описание-саммари» с ключевыми параметрами. При попадании саммари в результат retrieval полная таблица подгружается в контекст генерации.

3. Недоверие пользователей

Первые две недели инженеры проверяли каждый ответ вручную — из профессиональной ответственности. Перелом наступил, когда в интерфейс добавили прямые ссылки на источник с подсветкой конкретного фрагмента в документе. Возможность в один клик увидеть первоисточник превратила инструмент из «чёрного ящика» в верифицируемого ассистента.

4. Разграничение прав доступа

Часть документов — внутренние регламенты с ограниченным доступом. RAG-сервис не должен показывать пользователю фрагменты документов, к которым у него нет доступа, даже если они релевантны запросу.

Решение: фильтры метаданных в Qdrant. При каждом запросе передаётся роль пользователя, и поиск идёт только по доступному подмножеству индекса.

5. Объёмный контекст для одного ответа

Один вопрос может требовать фрагментов из 3–4 документов, увеличивая входной контекст до 6 000–8 000 токенов. При 150 запросах в день и on-premise LLM — нагрузка на GPU ощутимая.

Решение: кэширование частых запросов и сжатие контекста — удаление повторяющихся шапок документов, стандартных преамбул.

Результаты: метрики до и после

Замеры проводились через 3 месяца после запуска — когда пользователи прошли период адаптации.

МетрикаДоПослеИзменение
Среднее время полного цикла поиска20 мин5,2 мин−74%
Время ответа пайплайна (без верификации)12–18 сек
Точность ответа (оценка экспертов, 500 запросов)91,3%
Выдача отменённого норматива как действующего~12% ручных ошибок0,8%−93%
Запросов в день~150~210+40%
Суммарное время команды на поиск50 ч/день13 ч/день−74%

Рост числа запросов с 150 до 210 — показательный эффект. Когда поиск перестаёт быть болезненным, люди начинают проверять информацию, которую раньше «и так помнили». Качество работы с нормативами выросло не только за счёт скорости, но и за счёт полноты обращений к базе.

ROI: расчёт окупаемости

Экономия: 37 часов в день × 22 рабочих дня = 814 часов в месяц.

При средней стоимости часа работы инженера-сметчика ~1 500 ₽ (с учётом налогов и накладных) — ежемесячная экономия составляет ~1,2 млн ₽. Годовая — ~14,5 млн ₽.

Стоимость инфраструктуры: on-premise GPU-сервер + лицензии + облачный fallback — ~180 000 ₽/мес.

Срок окупаемости разработки — менее 5 месяцев с момента запуска.

Что сказали пользователи

Ведущий инженер-сметчик: «Первую неделю перепроверял каждый ответ. К третьей неделе перепроверял только спорные случаи. Ссылки на конкретные пункты — это то, что убедило. Я вижу, откуда взята информация, и могу за 30 секунд открыть первоисточник».

Руководитель проектного отдела: «Раньше молодые специалисты боялись задавать вопросы опытным коллегам. Теперь они сначала спрашивают систему — и приходят к старшим уже с конкретным контекстом. Это изменило динамику внутри команды».

Главный инженер проекта: «Для меня ключевое — что инструмент честно говорит, когда не уверен в ответе. Это важнее, чем скорость».

Когда RAG подходит — а когда нет

RAG — не универсальное решение. Внедрение оправдано при совпадении нескольких условий.

Подходит, если:

  • База документов — от 5 000 единиц, и она продолжает расти
  • Команда из 10+ человек регулярно обращается к базе (минимум 50 запросов в день)
  • Стоимость ошибки при работе с документами высока (юридическая, финансовая, репутационная)
  • Документы имеют сложную внутреннюю структуру: версии, перекрёстные ссылки, таблицы

Не подходит, если:

  • Документов менее 1 000 и они редко обновляются — дешевле навести порядок в папках и внедрить полнотекстовый поиск
  • Запросы однотипные и покрываются FAQ — хватит простого чат-бота с деревом решений
  • Нет ресурса на поддержку: RAG требует обновления индекса, мониторинга качества, доработки промптов
  • Команда не готова к изменениям в рабочем процессе

Для сравнения: компания STADLER (230 лет истории, производство оборудования для переработки отходов) внедрила ChatGPT как productivity-слой для 650 сотрудников и получила 30–40% экономии времени на типовых задачах. Но их задача проще — общая продуктивность, без привязки к нормативным документам с юридической значимостью. Для строительной отрасли базовый ChatGPT недостаточен: нужен контролируемый retrieval с верифицированными источниками.

Сколько стоит внедрение RAG-системы

Диапазон зависит от четырёх ключевых факторов:

ФакторВлияние на стоимость
Объём и качество документовСканы и неструктурированные PDF увеличивают стоимость парсинга в 2–3 раза
Требования к конфиденциальностиOn-premise LLM дороже в инфраструктуре, но дешевле в токенах при высоком объёме
Глубина интеграцииStandalone-сервис vs. интеграция с существующими системами (1С, BIM, СЭД)
Требования к точностиЧем выше цена ошибки — тем больше инвестиций в валидацию, тестирование, мониторинг

Ориентировочные диапазоны (2025–2026):

  • MVP (облачная LLM, до 10 000 документов, базовый интерфейс): 1,5–3 млн ₽
  • Продуктовое решение (on-premise или гибрид, 10 000–100 000 документов, интеграции, разграничение доступа): 4–8 млн ₽
  • Enterprise (полный цикл, кастомные модели, SLA, поддержка): 8–15 млн ₽

Ежемесячные расходы на инфраструктуру: от 50 000 ₽ (облако) до 300 000 ₽ (on-premise GPU + облачный fallback + мониторинг).

Ключевой вывод

RAG для нормативных документов — не модный AI-проект, а инфраструктурное решение. Как поисковая строка в браузере: однажды попробовав, невозможно вернуться к ручному перебору папок.

70% успеха — не в выборе LLM, а в качестве подготовки данных. Парсинг, метаданные, стратегия чанкинга, логика версионности — всё это определяет, будет ли ваш RAG-сервис выдавать точные ответы или красиво сформулированные галлюцинации.


Подписывайтесь на наш канал: @vibelogia

Поделимся опытом

hello@vibelab.ru

8 800 201 85 68

Написать в Telegram