Как ИИ помог быстро ввести и нормализовать строительные сметы. 1С.. 1С. Data Engineering.. 1С. Data Engineering. python.. 1С. Data Engineering. python. вайбкодинг.. 1С. Data Engineering. python. вайбкодинг. ввод данных.. 1С. Data Engineering. python. вайбкодинг. ввод данных. искусственный интеллект.. 1С. Data Engineering. python. вайбкодинг. ввод данных. искусственный интеллект. Машинное обучение.. 1С. Data Engineering. python. вайбкодинг. ввод данных. искусственный интеллект. Машинное обучение. нормализация данных.. 1С. Data Engineering. python. вайбкодинг. ввод данных. искусственный интеллект. Машинное обучение. нормализация данных. строительная документация.. 1С. Data Engineering. python. вайбкодинг. ввод данных. искусственный интеллект. Машинное обучение. нормализация данных. строительная документация. строительные сметы.

Автоматизировали ввод смет в 1С: 7000 позиций за 7 дней вместо 2 месяцев

У знакомого есть консалтинговая компания по внедрению продуктов 1С в бизнес и он поделился болью — у его заказчика — среднего размера строительной компании необходимо внести в систему порядка нескольких сотен смет в xlsx формате в 1С конфигурацию, которую они внедряют.

Сложность в том, что другие инженерные отрасли сильно отстают от IT в плане культуры разработки. Во времена моей юности по ФИДО ходила присказка «Если бы строители строили дома, как программисты пишут программы, то первый же залетевший дятел разрушил бы цивилизацию». Скорее всего автор этого афоризма никогда не был знаком с реальными строителями. Сейчас скорее наоборот — если бы строители писали программы, мы бы не вышли из эпохи арифмометров. Мы в IT приучены к тому, что ревью кода не пропустил коммит с лишним пробелом.

У сметчиков же документация выглядит как в буквальном смысле черновики — все файлы разной структуры, с разным числом и содержанием колонок, разделы разного формата, где‑то древовидные, где‑то плоские, причём оформлены в разном стиле — где помечено цветом, где шрифтом, с комментариями на полях и прочее.

Дело осложняется тем, что одно и то же наименование может быть записано разными сметчиками по‑разному. Где просто бетон, где бетон с указанием марки, слова в разном порядке, часто одно и то же наименование, но записано и вовсе разными терминами, где синтаксический анализатор бессилен, при том что термины для неспециалиста неочевидные и незнакомые.

Традиционный автоматический импорт в сметной документации невозможен. В итоге 6 сметчиков вводили одну строительную очередь больше 2-х месяцев — бюджет для компании‑внедренца около 2-х миллионов.

Мне пришлось довольно долго уговаривать заказчика попробовать использовать LLM для автоматизации ввода. Хотя бы попробовать. В конце концов он сказал — у нас сотрудники таким точно заниматься не будут. Хочешь — делай сам! Я попросил за свою работу за следующую строительную очередь 200 тысяч рублей. Мне был ответ — отлично — для нас экономия в 10 раз если справишься. Я ответил — хорошо, но ты даёшь мне одного сметчика в полное подчинение и я полностью организовываю бизнес‑процессы. На том и порешили.

Итак, процесс был следующим:

Первым делом я попросил ChatGPT проанализировать массив смет и определить структуру в формате JSON. Шаг вроде довольно простой, но оказалось что структура всё же древовидная, и нужно было придумать промежуточный формат, который можно было легко редактировать

Шаг два — попросил написать промпт, который анализирует каждый по отдельности xlsx файл и возвращает JSON в формате заданной мной структуры

Шаг три — попросил LLM написать на пайтон скрипт, который конвертирует в xlsx JSON из второго шага

На эти шаги у меня ушел первый день работы. Заказчик удивился, что всё прошло так быстро и предоставил мне сметчицу, которая должна была проверить выходной эксель. Для неё эта работа не выглядела осмысленной, но по сути это проверка возможности импорта данных. Ошибок в первую итерацию было довольно много и она сделала кучу пометок — обрабатывала первую сконвертированную Эксельку в течение дня.

Не буду дальше грузить техническими подробностями, скажу только что в итоге пришел к следующему формату — генерирую промежуточную csv из xlsx, запускаю там серию скриптов, которая автоматически правит типичные ошибки сметчиков, делаю там правки, перевожу csv => json => xlsx — даю на проверку сметчикам. Если xlsx верна, то и данные по этому участку сметы верны. На этот этап ушло порядка 2-х недель и дюжины скриптов — фильтров.

Ок, — сказал заказчик. — Со структурой смет разобрались. Что делать с номенклатурой — как её нормализовать? Я ответил: не переживай, LLM и не с таким справлялась. За день, посоветовавшись с ChatGPT, собрал пайплайн: из JSON‑массива извлекаю актуальную номенклатуру; есть таблица (словарь) нормализованной номенклатуры; получаю семантические эмбеддинги; по косинусному сходству для каждой позиции актуальной номенклатуры выбираю топ-10 кандидатов из словаря; затем самой дешёвой подходящей моделью OpenAI делаю rerank и выбираю одно лучшее соответствие; формирую XLSX и отдаю сметчикам на проверку.

В итоге оказалось что примерно в 80% GPT справился на «отлично», 10% сметчице пришлось исправлять и 10% дополнять. На обработку 7000 позиций у неё ушла примерно неделя.

Финальный пайплайн следующий — я беру массив входных xlsx => конвертирую в csv => делаю постобработку и ручные правки => json => xlsx => правки xls => опять правки csv => финальный JSON

Из JSON беру актуальную смету => словарь соответствия с нормализованной сметой LLM => правки сметчицы => финальный словарь

Дальше беру финальный словарь накладываю на JSON => проверка на целостность данных => финальная проверка сметчиками => передача на загрузку в 1С

На первую смету у меня ушло примерно 3 недели на круг, с согласованием и ресерчем. В течение нескольких месяцев было ещё несколько таких заказов и я справлялся со сметчицей уже за неделю. Там уже работа была отработана и заказчик начал сетовать что дескать слишком уж много ты зарабатываешь своим вайбкодингом. На что был ответ — подожди, я сократил твои расходы в 10 раз, ты много рассказываешь строителя о сокращении издержек?

В итоге без шума и пыли в общей сложности за пару месяцев работы удалось «залутить» порядка 1 млн рублей, при том что пайтон я знаю на уровне «читаю и перевожу со словарём». Был ли там «говнокод»? Скорее всего был, я почти не смотрел. Но для проекта это не важно, почти все скрипты были одноразовые, человеку и тем более команде не нужно было с ними работать.

Автор: youscriptor

Источник

Rambler's Top100