Перед закупкой материалов для капитального строительства компаниям нужно актуализировать цены в своих проектных каталогах ТМЦ. На крупных промышленных предприятиях они могут насчитывать 20-30 тыс. наименований разных материалов в год, и каждую позицию нужно сопоставить со множеством внешних прайс-листов.
Обычно такую работу выполняют вручную и тратят на нее до 9 месяцев из-за большого количества источников. Высокие трудозатраты, сопряженные с “ручным” анализом, приводят к финансовым потерям, но что еще хуже — предприятия упускают низкую цену, теряют время на рутинную работу с каталогами и все дальше отодвигают срок начала строительства.
Мы решили создать программу, которая бы проводила мониторинг цен быстро и эффективно. Дальше расскажем, как нам помогли технологии искусственного интеллекта и что получилось в итоге.
Продолжение, начало здесь
Как это бывает: готовимся к капитальному строительству
Допустим, компания N строит новый завод. Проектировщики сделали проект и составили список необходимых стройматериалов. В проектно-сметной документации указаны 20 тыс. уникальных позиций. Чтобы составить смету на строительство, предстоит выяснить стоимость всех материалов.
Конъюнктурный анализ
На этом этапе некоторые компании запрашивают прайс-листы у поставщиков или берут данные из открытых источников. Другая часть обращается к помощи специализированных сервисов, чтобы не тратить время на ручной подбор. Сейчас на рынке есть много автоматизированных систем, которые способны провести конъюнктурный анализ самостоятельно, например, «СметаПлан», priceQ, «Стройцена» и другие. Но у всех подобных решений есть специфические ограничения:
Они анализируют преимущественно тех поставщиков, которые уже сотрудничают с данными вендором;
Системы работают в режиме полнотекстового поиска, то есть выдают претендентов, которые максимально похожи по текстовому описанию конкретной ТМЦ, но не ее атрибутивному составу.

Как правило, такие программы анализируют не больше трех поставщиков по одной позиции - это очень мало. Даже сбор данных от четырех поставщиков не всегда позволяет определить минимальную цену. Чем больше предложений попадают под анализ, тем выше вероятность обнаружить среди них самое выгодное.
Актуализация цен
Когда формальный анализ завершен, т.е. выполнен Приказ Министерства строительства РФ № 421, может потребоваться дополнительная актуализация рыночных цен. Сейчас эту работу выполняют только вручную. Обычно под задачу выделяют одного или нескольких сотрудников, которые собирают цены для конкретного проекта строительства . Как это выглядит на практике:
Актуализация такого количества позиций занимает несколько месяцев.
За это время из-за инфляции поставщики меняют стоимость материалов, в некоторых случаях цены за анализируемый период могут измениться несколько раз. В результате стоимость материалов в смете оказывается заведомо неактуальной.
Как поможет искусственный интеллект
Чтобы корректно актуализировать смету, важно охватить как можно более широкий спектр предложений на рынке, а для этого система должна уметь выделять один и тот же товар, который поставщики в своих прайс-листах описывают по-разному.
Наша система «ПромМаркет» работает на основе технологий искусственного интеллекта. Она умеет выделять значимые для каждого конкретного заказчика атрибуты из описания ТМЦ и сопоставлять позиции с идентичными характеристиками даже в тех случаях, когда их написание различается (используются сокращения, лишние символы, другие элементы, порядок атрибутов, шаблон описания и т.д.).
Благодаря такой системе поиска программа охватывает максимально широкий круг источников и в автоматическом режиме проверяет цены сотен поставщиков.
Затем она составляет список кандидатов и фильтрует ценовые аномалии по специальному алгоритму, который обучается на данных компании.

После того, как все ценовые всплески убраны, система определяет минимальную цену на товар и формирует финальную таблицу, где показывает в том числе историю закупок (то есть дает понимание, смогла ли компания сэкономить и на сколько). Всю работу система выполняет полностью в автоматическом режиме, учитывая правила конкретного заказчика.

Как видно из приведенного (реального) примера есть вероятность что часть закупок компания осуществляла по завышенной цены, относительно существующих рыночных предложений. Безусловно окончательное решение потребует уточнения конкретных условий, а именно:
- объем партии
- сроки поставки
- условия логистики и оплаты
и ряд других, но даже этому систему можно «научить».
Что дает автоматизация с ИИ, если кратко
Актуализация цен вручную сопряжена с ошибками. При длительной работе с таблицами человек устает, его концентрация ослабевает. Искусственный интеллект - это всегда внимательный и аккуратный помощник, который:
Экономит время
Актуализация стоимости ТМЦ занимает 8-12 часов. За ночь технология может выполнить работу, на которую обычно уходит несколько месяцев кропотливого труда. Представьте, вы запускаете «ПромМаркет» вечером, а утром получаете каталог со свежими рыночными ценами, причем с самыми выгодными и актуальными.
Страхует от переплат
Сам по себе рынок стройматериалов очень волатильный, поэтому необходимо действовать быстро. Если процесс актуализации цен затягивается, итоговая стоимость ТМЦ может оказаться выше сметы в несколько раз, что приведет к незапланированным расходам.
Экономит деньги
Система заменяет работу небольшой команды на один капитальный проект строительства, а это значит – минимум операционных затрат. Что еще важнее, она сокращает расходы на закупку стройматериалов. По отдельным категориям ТМЦ экономия может составить 1-2% — в масштабах капитального строительства выходит огромная сумма (в некоторых случаях – сотни миллионов рублей).
Отслеживает поставщиков с минимальными ценами
Отслеживая цены вручную, сотрудники чаще всего проверяют 2-3 источника. Это сильно ограничивает в выборе, и в конечном итоге приходится соглашаться на завышенные цены. ИИ опирается на широкий круг источников, отслеживает поставщиков в фоновом режиме и обновляет цены по мере их изменения. Если на рынке появится контрагент с более выгодным предложением – система это заметит. При этом система берет только те ценовые источники, которым доверяет компания.
Проводит мэппинг данных
Ручной перенос данных из каталога САПР в каталог сметной и закупочной системы нередко сопряжен с ошибками, из-за которых закупщики могут купить не те стройматериалы. Система исключает такие риски, она автоматически проводит мэппинг каталогов ТМЦ САПРа, сметной и закупочной системы, устраняет все обнаруженные расхождения. В итоге работа проектировщиков, сметчиков и закупщиков ведется согласованно, а на объект поставляют именно те материалы, которые были заложены в проект.
Комментарии (16)
WinLin2
07.02.2025 16:56Для каждой позиции есть набор обязательных параметров, например для кабеля: гост (2012), сечение и кол-во жил, марка кабеля (ВВГ). Эти параметры должен знать сппциалист и предварительно создать базу знаний.
Найти слово кабель, найти возможную марку, 3x1 или 1x3 где здесь сечение.
Не являюсь крутым электриком, только в пределах домашних работ.
Как определить является ли моя пограмма ИИ? :)
Karbasov Автор
07.02.2025 16:56Верно, набор обязательных параметров определяет онтология данного класса. Мы научили систему извлекать атрибуты из текстового именования ТМЦ, согласно заданой онтологии и раскладывать атрибуты по ячейкам таблицы, подробный пример был разобран в этой статье - https://habr.com/ru/articles/862820/
Что касается вопроса это ИИ либо не ИИ, тема очень дискуссионная и на результат напрямую не влияет. Проведенные тесты, это описано в первой статье, показали что системы "умнее" человека, люди чаще ошибаются
little-brother
07.02.2025 16:56Пффф, мелочевка типа кабелей не шибко интересна. А вот ценники на оборудование, особенно заказное (типа пром. кондиционеров, ИБП, электрощитов и т.п.), таким вот "мониторингом" не пробьешь.
Karbasov Автор
07.02.2025 16:56Верно, система подходит только для ходовых товаров, для заказного оборудования она не подходит. По нашему опыту порядка 70-80% (по количеству) позиций являются ходовым и могу быть идентифицированы по атрибутному составу или каталожному номеру
lazy_val
07.02.2025 16:56На выборке каких размеров это все обучалось?
Возьмем, к примеру, те же кабели - сколько позиций было в обучающей выборке, и сколько потом прошло через инференс?
Karbasov Автор
07.02.2025 16:56По технике обучения со временем подготовлю отдельную статью, сейчас могу сказать что мы комбинируем ML, ИИ (глубинные нейросети) и более простые модели. Когда стартовали (ноябрь 2019) опирались на доступные в тот момент нейросети, они быстро показали хороший результат (80-90%), но довести их до точности, близкой к 100% было не возможно, в итоге мы были вынуждены перейти на гибридный вариант.
По тестовой выборке, один из примеров приведен в этой статье - https://habr.com/ru/articles/862820/ , при этом отдельные позиции контролинг проверяет вручную на регулярной основе, их точное количество мы не знаемlazy_val
07.02.2025 16:56В статье по ссылке вижу только примеры инференса:
число записей там варьировалось от 500 тысяч до 1,2 млн. При этом количество дублей могло достигать 30%
В каталоге ТМЦ (товарно-материальных ценностей) компании было представлено 115 326 записей ... было выявлено 3567 записей, содержащих дублирующую или схожую информацию
А меня интересует размер выборки, на которой модель обучается. Чтобы во входных данных, содержащих, условно говоря, 100 тысяч записей, найти 3% (или 30%, неважно) дублей, нужно обучить модель на размеченных данных (дубль / не дубль) размером 50 тысяч / 10 тысяч / 1 тысяча записей. Или сколько все-таки?
accsentive
07.02.2025 16:56Вторая позиция имеет двойной аргумент по огнестойкости ("огнестойкий" + FRLS), у первой позиции 0 таких аргументов. В чем проверка их идентичности?
Karbasov Автор
07.02.2025 16:56Очень верное замечание!
Согласно правил подбора заказчика этот атрибут не значим, в этой статье (https://habr.com/ru/articles/862820/) так же разбирается Кабель электрический, хотя и с друго проекта, и приведена стратегия сопоставления и атрибутивный состав. Если в будущем для них это будет важно, новый атрибут будет добавлен в онтологию и учтен при подбореlittle-brother
07.02.2025 16:56Для пройдох подрядчиков, такой параметр как FRLS конечно не значим, так как такой тип изоляции существенно удорожает кабель. Но есть нюанс - если проектировщик такой кабель заложил, то скорее всего для средств противопожарной автоматики, согласно требованиям нормативных документов, а не велению левой пятки. С кабелем вообще зачастую беда, тип оболочки это одно и вместо медных жил может попасть омедненный алюминий или сталь. Так что лучше переплатить 20-30% и спать спокойно, чем потом перекладывать.
accsentive
07.02.2025 16:56Успех автоматизации закупок не определяется присутствием ИИ. Каждая строка в листе заказа - это не просто наименование позиции и цена, но и куча допусловий от поставщика: количество на складе, сроки поставки (один заказ может быть поставлен несколькими партиями с разными сроками), условия оплаты, гарантийные, страна производителя, испытания и сертификации, параметры и составы материалов. По каждому такому "допику" есть под-условия. Например, при оплате "100% предоплата", необходимо сразу знать рассчитанный ранее кредитный лимит поставщика.
Все это настраивается в системах управления закупками (SRM). В торговых сетях такие системы имеют классификацию EDI (электронный обмен данными). В работающих на сегодня инфраструктурах такого класса востребована сигнальная аналитика формата: "отгрузочная цена артикула HF-12GZ у 90% поставщиков превысила пиковое значение сметы" или "в заказе xyz123 рост цены по позиции "огурцы" составил 40% с начала года и выпервые превысил значение позиции "шейка свиная".
А ИИ+парсинг публичных источников - это больше про то, как спросить у ChatGPT "где сейчас самые дешёвые билеты на концерт Басты".
Karbasov Автор
07.02.2025 16:56По первой части полностью согласен, я это упоминул в статье, но есть нюанс:
1. При загрузке прайсов можно указать базовые условия, и индикативно они будет в диапазоне стат. погрешности
2. Поставщики на ценовых агрегаторах выставляются, как правило, с +/- одинаковыми условиями, их цена не является окончательной, а так же индикативной
3. При обмене данными между корпорациями (такой опыт у нас был), в систему загружается цена со всеми условиями
4. После выборки наиболее релевантных кандидатов работа закупщика значительно упрощается
p.s. ChatGPT и подобные ему рашают данную задачу с достаточно низким уровнем качества, мы проверяли их несколько раз, крайний раз я лично тестировал Deepseek
nixtonixto
07.02.2025 16:56Если на рынке появится контрагент с более выгодным предложением – система это заметит. При этом система берет только те ценовые источники, которым доверяет компания.
У доверенного контрагента после инвентаризации склада может найтись цементная смесь, у которой срок годности остался 1 месяц. Они поставят на неё цену на рубль дешевле самого выгодного предложения на рынке и ваш ИИ самым первым закупит этот залежавшийся товар? Вместо того, чтобы купить на заводе, который торгует с конвейера.
Karbasov Автор
07.02.2025 16:56В данном конкретном случае система не пропустит предложение по причине аномально низкой цены, в любом случае, как и писал выше, финальное решение будет за закупщиком.
Обращаю внимание, что данная система не стремится полностью заменить человека, но она может сделать за него 80-90% "грязной работы"
akakoychenko
Так а в чем основная идея работы ии? Есть отличный пример с кабелями, где, к примеру, мне, как человеку, кто в кабелях не разбирается, непонятно, разные ли кабели 1 и 2.
Предположим, ии получил на вход эту пару артикулов. Какие шаги будет делать ии, и где доберет информацию о значении каждого термина, чтобы понять, что по огнестойкости, материалу, и сертификации кабели идентичны?
Karbasov Автор
Система разбирает на атрибуты текстовое именование ТМЦ, при этом не важно, это данные внутренние или внешние, не важно в каком формате они описаны, подробнее, на примере дедубликации написано в предыдущей статье - https://habr.com/ru/articles/862820/
Из внешней информации (прайсы) система извлекает цену
Проверяет ряд условий, выявляет ценовые аномалии
и если все проверки успешно пройдены, рассчитывает рыночную цену