Найти в Дзене

Как мне помог ИИ при обработке тысячей строк составить ВОР

Однажды у меня возникла трудная ситуация, когда потребовалось за ограниченный срок разработать ведомость объемов работ на лечение деревьев по данным инвентаризации парковой территории на площади более 20 гектаров. Это порядка семи тысяч деревьев и несколько сотен деревьев, требующих проведения мероприятий по лечению.
Смеркалось. Ветви клёна за окном офиса скреблись по стеклу от резких порывов
Оглавление

Однажды у меня возникла трудная ситуация, когда потребовалось за ограниченный срок разработать ведомость объемов работ на лечение деревьев по данным инвентаризации парковой территории на площади более 20 гектаров. Это порядка семи тысяч деревьев и несколько сотен деревьев, требующих проведения мероприятий по лечению.

Смеркалось. Ветви клёна за окном офиса скреблись по стеклу от резких порывов весеннего ветра. Я пил чай и знакомился с ботом ИИ по переписке в телеге. Обсуждали рецепт консервирования овощей, зачем на производстве добавляют уксусную кислоту Е320, тогда как бабушка обходилась без неё. ИИ пытался вытянуть из меня семейный рецепт консервации.

В этот момент у меня возникла мысль, результат которой вы успели прочитать в заголовке.

-2

Задача ещё толком не поставлена, но бот в своём ответе выбрал дубы, понимаете, не берёзы, осины, ивы, а именно дубы - особо ценную породу деревьев в исторических парках. Это внушило некоторые надежды.

-3

Без конкретики ИИ начинает галюционировать, имейте это в виду при составлении промта.

Вот такой шаблон ведомости он набросал, но это не мой случай, поэтому мы идем дальше. Кому-то может и пригодится, вполне себе так подробно, берите на вооружение:

-4

В проектной деятельности сложилась определëнная практика по лечению старовозрастных деревьев и у меня был отличный пример под кодовым названием "Боде".

-5

Бот обработал файл и догадался, что я от него жду. Мой ответ:

да, надо будет составить аналогичную ведомость на основе ведомости инвентаризации, которую я пришлю. По описанным повреждениям тебе нужно будет составить работы по лечению с учетом всех нюансов, указанных в столбце "Мероприятия", там где повреждения "раны от опиленных ветвей, капы, сухие ветви (до 5 шт.), сухобочина у комля (4000 см²), стволовая гниль" прописываешь в ведомости работы по лечению и указываешь площадь (4000 см²) и следующей строчкой - обрезку сухихи ветвей 5 шт. Там где корневая поросль и в мероприятиях указано обрезать корневую поросль, но не указано количество, ты прописываешь работу по обрезке корневой поросли, а ее количество определяешь на основании вероятности в соответствии с данными по диаметру ствола, породы дерева, возраста, указываешь объем срезаемой поросли в штуках и куб.м порубочных остатков; там где в повреждениях указано "сухие ветви (до 5 шт.), плодовые тела грибов в корнях, дупло у комля (800 см² и 1000 см²), а в мероприятиях указано - лечить, Снять плодовые тела грибов" значит у тебя два дупла, ты так и прописываешь в работах и не забудь про срезку сухих веток и также указываешь про то что нужно снять плодовые тела грибов; если указано в повреждениях "стволовая поросль, морозобоины, раны от опиленных ветвей, мхи без числовых значений, а в мероприятиях задано Обрезать стволовую поросль, значит ты в работах пишешь про стволовую поросль и примерно рассчитываешь ее вероятный объем исходя из данных по породе дерева, возрасту и диаметру. Это инструкция к составлению ведомости "Сделай по Боде". Ну что ты понял? Можно загрузить первую ведомость инвентаризации?

-6

Чтобы не было ни у кого иллюзий, прокомментирую, может быть для кого-то открою тайну, а может быть и нет. Бот пишет, что понял меня на 100%. На самом деле, он ни черта меня не понял, и я потратил много сил и времени, чтобы добиться от него нужного результата. Вся фишка в понимании логики процесса и поставленной задачи, от этого зависит качество промта, то есть описания задания, что бот должен сделать. Готовый промт можно найти в премиум подписке здесь:

Подготовка данных. Первый этап

Кто в теме дендрологии, тот знает, что ведомость инвентаризационного описания состояния деревьев выглядит так:

Скрин из инвентаризационного описания состояния деревьев
Скрин из инвентаризационного описания состояния деревьев

Меня интересовали только те строчки, где были прописаны мероприятия по лечению деревьев, строчки по рубкам и пустые (здоровых деревьев) я удалил, чтобы минимизировать нагрузку на аппарат ИИ. Также я избавился от лишних столбцов. Получилась вот такая ведомость из 170 строк вместо тысячи по одному инвентаризационному участку. А участов было несколько.

Скрин из подготовленных данных для обработки на этапе 1
Скрин из подготовленных данных для обработки на этапе 1

Приручаю нейросеть для работы по методу Боде. Загрузил файл на 170 деревьев, но бот сначала "схалтурил" — прислал лишь короткий образец. На мой вопрос "Что сделать, чтобы ты меня понял?", он выдал честное: "Мой косяк, исправляюсь!".

Оказалось, при детальном расчете (с учетом каждого дупла, обрезке сухих ветвей, поросли и т.д.) мои 170 деревьев превращаются в список из 500+ позиций. Каждая работа — отдельная строка.

Чтобы не "уронить" чат таким объемом, бот предложил изящное решение: показывает начало и конец списка для контроля, а остальное упаковывает в код, который в один клик превращается в готовую таблицу Excel. "Боде-машина" запущена!» Но без объёмов. Опять косяк...

процесс генерации промта
процесс генерации промта

Так выглядит генерация промта на новые вводные, по запросу бот выдаст его текстом. Запускаем процесс с очередной загрузки файла, в следующем запросе к своему добавляем промт бота и уже получаем более менее какой-то результат, который выводится по частям. Это выглядит так:

ведомость в ИИ, одна из частей
ведомость в ИИ, одна из частей

Но всё так гладко, как хотелось бы. Бот путается в строчках, галлюцинирует в последовательности инвентарных номеров, достраивает несуществующие номера в ведомости и теряет строки.

работа агента
работа агента

Забегая вперед, процесс генерации идеального промта занял примерно 50 токенов и 7 часов рабочего времени.

-12

Данные теряются, породы путаются.

-13

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

-14

Бот в итоге взял паузу на самобичевание, что подняло мне настроение и придало сил для дальнейшей борьбы с глюками ИИ.

-15

В итоге номера строк он повторил идеально, а данные опять перепутал

-16

Слишком длинные промт тоже не напишешь, если символов больше чем может обработать модель, он ругается что слишком много запросов и обрабатывает только первую часть, поэтому есть смысл грузить в него информацию файлами с большим объемом информации.

-17

Вовремя указываете на ошибки и бот их устраняет в следующем запросе

-18

Промт в конце-концов сформирован универсальный и работает без ошибок, копируем данные из диалогового окна бота в блокнот

-19

И продолжаем выводить следующие части ведомости.

-20

Все данные из инвентаризации бот обрабатывает в ведомость мероприятий в соответствии с заданным шаблоном "Боде", работает интеллектуальная оценка по тем позициями, где данных попросту нет, например поросль. Какой объём? Бот учитывает породу дерева, его возраст и диаметр и указывает вероятностный объем исходя из того что например, тополь дает больше поросли чем липа.

подсказка дальнейших команд
подсказка дальнейших команд

Выводим таким образом все ведомости по технологии с учетом того что методика "Боде" зашита у него в памяти: грузим подготовленную инвентарную ведомость, переносим генерацию в Блокнот.txt, следуем указания бота по продолжению. Если ответ дополнять какими-то лишними словами, результат будет испорчен галлюцинациями бота и начинай от печки.

если промт работает результат без программных кодов
если промт работает результат без программных кодов

Когда закопировали все генерации в блокнот по одной ведомости, сохраняем её в формат csv, открываем в эксель, приводим в читабельный вид и вуаля, ведомость готова. Вот пример.

Скриншот итоговой ведомости первого этапа
Скриншот итоговой ведомости первого этапа

Работа по первому этапу закончена.

Подготовка сводной ведомости объемов работ по лечению. Этап 2

Теперь полученную ведомость нужно превратить в сводную, просуммировать все результаты, прописать формулы и примечания. Это что, делать вручную? Естественно нет, тот же бот при правильном промте за минуту сделает эту работу за вас. Только проверяй тонкие места и вноси правки в промт.

Точно также, загружаем в бот образец сводной ведомости без объемов, но с логикой расчетов в примечании, дальше загружаем ведомость, полученную на втором этапе и загружаем промт. Ведомость объемов работ готова:

Фрагмент ведомости, полностью составленной ИИ
Фрагмент ведомости, полностью составленной ИИ

Следуя данным инструкциям вы можете написать промт для ИИ, либо использовать мой, который опубликован в статье "Промт для ИИ-ассистента по ставлению ВОР на лечение деревьев по данным инвентаризации" по платной подписке:

Удачи!