Статьи

ChatGPT вместо ГИС-инженера

Топ месяца Программирование
Время прочтения: 4 минуты
ChatGPT вместо ГИС-инженера? Нет, не “вместо”, а “в помощь”!
Недавно в рассылке мы обещали рассказать вам о том, как доступные языковые модели (GPT-3.5 и GPT-4) могут изменить нашу работу.
Да, в повседневной работе ГИС-инженера они тоже зачастую полезны. И если спрашивать модель о каких-либо данных — не лучшая идея*, то вот попросить ее написать за вас код на Python — отличное решение, которое может сохранить вам пару часов работы.
За последние две недели я обращалась за помощью к модели по написанию кода дважды и могу дать пару советов, если кто-то решится сделать так же. Первая задача, которую я решала — это массовое редактирование json-файлов с 3D-моделями зданий: мне нужно было удалить из них некоторые части модели, отредактировать систему координат и изменить тип геометрии. Вторая — это автоматическое создание паспорта аэрофотосъемки**.
*Важное уточнение: попросить модель можно о чем угодно, но валидация ее ответов на вашей совести. Даже в написании кода она может допускать ошибки логического характера (хотя с точки зрения синтаксиса все будет идеально), не говоря уже о выдуманных данных. Есть много примеров личных и от знакомых, когда модель просили найти данные, а она придумывала значения из "головы". Или она может ответить вам на сложный вопрос, но если попросить ее предоставить доказательства утверждений в виде статей, то она может изобрести на ходу и авторов, и название статьи, которую вы никогда не найдете.
**Этот документ, который сдается вместе со снимками с беспилотника на контрольный просмотр, содержит в себе даты полетов, названия объектов полетов и, самое сложное, разбивку по галсам всех полетов одного объекта, у которых должна быть сплошная нумерация, с отображением этих галсов на базовых картах.

Советы по написанию кода с ChatGPT

Я говорю "если кто-то решится сделать так же", хотя ничего страшного в этом процессе нет, но нужно держать пару мыслей в голове:
1) Описывайте задачу пошагово. Чтобы это сделать, нужно для начала разбить ее на шаги для себя. Например, сначала программа должна прочитать папку и найти в ней все необходимые файлы, затем считать эти файлы, затем найти в них то, что нужно изменить или достать информацию, затем эту информацию обработать и так далее.
Так начинался скрипт по автоматическому созданию паспортов аэрофотосъемки
2) Код нужно проверять. На каждом шаге нужно проверять, что логика не сбилась и код делает все еще то, что вам нужно. Модель умеет красиво сказать, что она сделала то, что вы просили, но это не всегда так.
3) Пишите абстрактно. Например, моей модели во второй задаче не нужно понимать, что она делает паспорт аэрофотосъемки, но она понимает, что ей нужно составить список всех файлов с расширением JPG, разбить их на списки по датам, затем достать их exif координаты, затем посчитать направление между соседними снимками, разбить снимки по группам, если направление сильно изменилось (а если сказать модели "разбей полет на галсы", то она вас либо не поймет, либо сделает что-то неожиданное).
Например, здесь модель решила, что направление будет уникальным ключом словаря, и так она разобьет полет по направлениям. Можно попробовать другими словами попросить сделать то же самое, но в этом и суть — проще написать абстрактный запрос, и, вероятнее, он будет исполнен так, как вы попросили.
4) Со сложными многоступенчатыми задачами лучше справляется модель ChatGPT 4, хотя даже она иногда устает. Ее можно заставить продолжить писать код, и это работает, но не всегда:
Пример, как модель может “устать”.
5) Назад дороги нет. Если какой-то из шагов вы описали неверно, модель вас не поняла и начала писать не тот код, который вам нужен, отменить вы не сможете, поэтому храните промежуточные шаги, и если что-то пошло не так, то говорите модели "вот код, а теперь измени его так, чтобы...."
После того, как модель застряла и не смогла написать новый кусочек кода, я попыталась вернуться к предыдущей версии скрипта, после чего модель начала писать новый скрипт, совсем не такой, какой он был в оригинале. По смыслу будто то же самое, но я не стала ждать, чем это закончится, мне нравилась первая, более простая версия.
Да, для выполнения таких задач надо немного уметь программировать, а также надо уметь читать код, разбивать свою задачу на маленькие шаги и затем соединять их в единый скрипт.
Здесь модель встроила изменения и показала весь код целиком снова
А здесь модель показала только отдельные изменения и подсказала, как именно их нужно внести в скрипт.
Надеюсь, не отбила у вас желание попробовать — этот подход действительно сохранил мне несколько часов работы. С моделью можно поговорить не только про код, но и по душам, но об этом следующих статьях. Воспользоваться моделью из России по-прежнему непросто, но на русском языке модель продолжает работать.
Еще немного мотивации: несколько дней назад разработчики открыли большему числу людей дополнительные плагины для четвертой модели, и самое важное — теперь она может работать с современными данными, находя их по вашему запросу в интернете и выдавая анализ информации вместе с исходными ссылками!
Автор материала: Наталья Волгушева