Я пользуюсь ChatGPT для создания скриптов на Python
Я не программист и Python не знаю. Сегодня ChatGPT написал мне скрипт, который выбирает из кучи папок картинки, собирает их в одну, при этом масштабирует по нужному алгоритму, добавляет тень, потом кладёт их на фон, сверху водяной знак и потом ещё сортирует по нужным папкам.
С некоторых пор стал активно использовать ChatGPT для написания простых скриптов для автоматизации действий. Это не руководство к действию и не «волшебные промпты», лишь описываю свой опыт.
Начну с выводов (дальше статью можно не читать):
Пишите на Python
Всё просто, это языковая модель, она обучалась на образцах. Образцов чего было больше всего? Правильно, вы угадали.
Вот рейтинг знаний языков программирования, который мне составил сам ChatGPT:
Понятен смысл, да? Я сначала пытался писать скрипты для сортировки файлов на CMD (Batch) и это было адом. Часами объяснял, а в ответ «Простите, я ошибся, вот исправленный скрипт...» и выдавал очередную неработающую фигню.
Поэтому сегодня это желательно Python, как только стал использовать его — дела мигом наладились.
Не ставить безумных задач
Ну ребята и девчата, задача «Вот тебе $100 преврати их в $100 000 максимально быстро и законно», конечно, хайповая, но выполнена не будет. А вот «Возьми файл 1.JPG из директории 1, проверь подпапки в директории 2 и если в подпапке есть файл с именем 2.jpg скопируй его туда» будет прекрасно работать.
Поэтому разбиваем действие на шаги, каждый шаг продумываем, пишем алгоритм. И последовательно описываем, что программа должна делать. Так всё отлично работает. Иногда нужны корректировки, но простые скрипты у меня уже с первого раза работают без вопросов.
Модульность и структура
Да, много кода за раз ChatGPT выдать не может, поэтому разбиваем код на небольшие логические блоки и если у нас что-то подлиннее, то выделяем в отдельные функкции.
Можно ли написать с помощью ChatGPT большую программу? Я поковырялся некоторое время и могу сказать, что да, наверное можно. Но! Для этого надо:
- Спланировать структуру проекта;
- Использовать функции и методы;
- Изучить классы и объекты;
- Использовать модули;
- Использовать пакеты;
- Использовать Git;
- Наладить тестирование.
Т.е. это уже выходит за рамки «напишу быстренько простенький скрипт» и подразумевает глубокое погружение в тему. И тут либо ты сам начинаешь становиться программистом (что не всем нужно), либо проще (и дешевле) обратиться к программистам, которые это уже умеют.
Тут есть грань между экономией времени и сил и «день потерять за час долететь». Я всегда оцениваю сколько времени потрачу на написание скрипта, работу без скрипта и изучением тематики для написания скрипта. Иногда проще руками сделать и никакие программы не писать.
Мне нравится сравнение про автомобили: в начале XX века ими управляли профессиональные шофёры, а сегодня профессия не то что бы исчезла, но есть дальнобойщики, таксисты, механики, а есть я — который машину чинить не любит, она неделями стоит, но может сесть и поехать на ней в отпуск. Потому, что это удобно. Вот со скриптами ChatGPT так же — «не хочу разбираться, дайте мне скрипт за 10 минут».
Нюансы и пошаговость
ChatGPT не умеет думать, у него есть некие связи, но нет понимания почему это так. Многое он не понимает «по умолчанию». Поэтому отмечаем нюансы:
- Это должно быть прозрачным.
- Используй только JPG файлы.
- В этой папке нет подпапок.
- Скрипт лежит в той же папке, что и файлы.
Подробнее и, ещё раз повторюсь, пошагово. Рисуйте у себя в голове процесс. Это и есть программирование. А ChatGPT просто переводчик, он ваш алгоритм переводит на известный ему язык — например Python (другие он пока знает средненько и хуже).
GPT-4 лучше чем 3.5
Да, жаба давит, но надо признать , что GPT-4 пишет код лучше чем 3.5. Причём это даже не про сам код, а про интерпретацию поставленной задачи и понимание, что нужно.
Чтобы не выбирать лимит слишком быстро я простые вопросы или объяснения спрашиваю у 3.5, а код пишет 4.
И да, всё равно они пока оба тупня, попробуйте спросить «Зачем Герасим утопил Муму?» или дайте текст в неправильной раскладке, таблицу соответствия и попросите расшифровать. Вечер веселья обеспечен.
У меня своя фишка, про «лихих пиратов»:
Пример практической задачи
У меня есть магазинчик, там нужно было сделать витрину, это тысячи файлов и папок. Как оцениваю по времени? Около двух дней. Написание скрипта заняло примерно 2–3 часа. Причём я много понял и сейчас напишу подобный скрипт с помощью ChatGPT на порядок быстрее, примерно за 30 минут. Ну давайте уже картинки котиков покажу.
Было:
- Два котика, цветной и чёрно-белый, с прозрачным фоном.
- Сотни папок, где лежат аналогичные картинки: собачки, черепашки, лошадки.
- Фон.
- Водяной знак.
- Нужно поместить котиков (собачек, черепашек, лошадок etc.) на фон, масштабировать, добавить тень, положить водяной знак, переименовать файл и положить в нужную папку.
Результат:
Сотни файлов обрабатываются за минуты. Я очень доволен.
Вот пример первоначального запроса:
Это начало, но много не учёл: прозрачность, неправильно указал размеры, потом у меня появились исключения и сделал отдельной функцией тень. Поправил в процессе. Ещё пытался сделать модульность и разбить на функции, но оказалось лишнее и из пушки по воробьям.
Ниже код (в одно окошко не влезло):
Тень:
Всё работает и я счастлив. В скрипте прописана куча ручных исключений, это связано с особенностями изображений, чтобы лучше смотрелось.
Далее мне понадобилось рассортировать полученные изображения по папкам товаров, этот скрипт был написан менее чем за минуту и заработал с первой попытки:
Возражения, придирки, оговорки
- Я не программист и не хочу им быть. Меня всё устраивает. Мне нравится и интересно программирование, но изучение это слишком много времени. Или посвящай всю жизнь, или ничего не пиши. Вот тут мы видим третий путь — я могу писать простенькие скрипты, которые экономят кучу времени и не требуют погружения.
- «Твой код не PEP8! 🤬» — мне вообще без разницы как он выглядит, работает и зашибись.
- «Можно взять плагин Photoshop и сделать то же самое» — нельзя, к сожалению. Нет такого плагина, который:
1. Выбирает два файла по имени.
2. По вхождению в имя ставит один файл слева.
3. Избранные по имени файлы добавляет в исключения и обрабатывает иначе.
Конечно написанный скрипт всегда будет гибче и с большими возможностями. Наверное такое может ImageMagick, но там опять командная строка.
Итоги и взгляд в будущее
За пару месяцев написал штук 20 утилитарных скриптов, которые значительно облегчили мне жизнь. В основном это обработка рутинных операций с большим количеством файлов, сортировки, исправление изображений. Очень много времени сэкономил, а, главное, душевных сил: знаете как мерзко, когда два дня сидишь и однообразные картинки правишь. И ведь не делегируешь — объяснять дольше чем самому делать.
Очень доволен. 😊
В дальнейшем, конечно, буду продолжать такие скрипты. Так и подмывает изучить ООП, методы, пакеты, модули и прочую хрень и нырнуть в программирование, очень уж увлекательно, но торможу себя, сейчас другие планы и задачи. Было бы здорово если бы появилась IDE для непрограммистов, чтобы изначально поддерживалась структура, но пока такого нет.
Чисто для собственного удовольствия планирую написать скриптик, который будет работать на Cloudflare Workers с интерфейсом на Cloudflare Pages и разбанивать людей, которых я забанил в Твиттере по запросу.
Относительно ChatGPT, мне кажется, что сейчас люди ещё не поняли всю мощь языковых моделей и куда его можно применять:
- Сайты, которые автоматически переводятся на десятки языков «на лету».
- Игры, где процесс перевода на три десятка языков занимает минуты и стоит копейки.
- Написание текстов для карточек товаров, подбор ключей для магазинов (это делается потихоньку, но пока зачаточное).
- Предварительная классификация и отбор текстов, сайтов, страниц, предметов и вообще составление любых списков и каталогов — огромнейшая отрасль с миллиардами.
- Перевод «на лету» в оффлайне.
Думаю, что в течении ближайших лет 10 мы многое увидим.
А вот мой блог: «Злая Печенька», он вообще не про это, но если я такую статью написал, то представляете сколько там ещё полезного?
Ну и чатик: «Печенькочат», это для избранной элиты.
“Я не программист и Python не знаю”.
Почитав статью, для 90% людей вы именно программист и есть😂
Наверное, но написать ничего не могу. Ну т.е. знание языка у меня примерно ноль.
Это легко поправить, но это время и изменение образа жизни. В программирование нельзя вкатиться на «полшишечки».
не беда, главное найти учебник с картинками))
Картинка как бы намекает, что я дебил, не могу разобраться в программировании на Python, потому, что не грамотный и не умею читать. И общий смысл — «ты просто тупой, не втирай нам тут про „не хочу“»
Всё верно?
опа, какой ты напряженный)) картинка намекает на то что язык простой и что с ним разберется и не программист, вот в чем дело. Но если ты подумал что я тебя оскорбить хотел, то это не так...
Как бы это ещё раз объяснить. Программисты упорно не понимают. Им кажется, что все вокруг спят и видят, как бы выучить язык программирования, просто у них не получается. Вот программисты смогли (видимо по причине природной гениальности), а простолюдины не могут (видимо причине неудачных генов).
Это не так.
Я не хочу разбираться с языком программирования. Для меня это не составляет сложностей. Мне это не нужно. Потому, что для того, чтобы нормально разбираться в программировании — надо этим жить. Надо изменить всю свою жизнь и стать программистом.
Ровно так же, как я вообще ничего не хочу делать с машиной. Вот ни колодки менять, ни масло. Хочу только ездить и всё.
И если посвящать жизнь программированию, то это практически в 99% случаем означает наёмное рабство. А если ты пилишь стартап или фирму, то ты мигом вывалишься в менеджеры.
А зачем тебе "нормально разбираться" и "этим жить" для нужд типа поресайзить пару картинок? Какой-то нездоровый максимализм. Так-то подобные задачи решаются и фотошопными макросами, и другими специализированными инструментами, где не надо ничего знать о коде вообще.
Не решаются от слова вообще. И да, я в посте про это написал. Можно прочесть, а потом комментировать.
Почему все аргументы программистов сводятся к «Программа этого не делает? Ну правильно, значит тебе это не нужно!»
Ну, ок, не умеешь, значит невозможно, договорились.
Вот что ты выделываешься? Я автоматизацией в графических программах пользовался побольше твоего.
Ну давай, сделай в Фотошопе задачу из примера. Написать тебе ТЗ?
В конце ты должен будешь написать: «простите, у меня нихрена не получилось, я зря выпендривался».
ТЗ писать?
Ох ты боже мой, давай ещё похвастайся, сколько ты картинок заресайзил. Нахрена мне тз с дурацкими правилами раскладки по папкам, которое надо будет выдумать, чтоб потом героически эту проблему решать нейросетями.
Слив защитан. Чмак в носик. 🥰
Да, да, ты победил, ты повелитель нейросетевого ресайза.
Я не совсем согласен с фразой про то, что нужно этим прямо жить. С машиной так или иначе, но вы что-то делаете - банально посещаете мойку, заливаете бенз, проверяете уровень масла и прочее. Игры с chatgpt, python и прочим - это как раз на уровне залить бенз - главное набить руку, труда никакого не составляет. Чтобы обработать массив функцией - не обязательно знать, как он там внутри работает, это же не собеседование, работает - да и бог с ним (самое ужасное, что большинство джунов так и работают)
Но если уже хочется быть в теме, делать что-то сложнее crud, то уже нужно вливаться)
А вообще, мне очень сравнение с машиной понравилось