Я пользуюсь ChatGPT для создания скриптов на Python
Я не программист и Python не знаю. Сегодня ChatGPT написал мне скрипт, который выбирает из кучи папок картинки, собирает их в одну, при этом масштабирует по нужному алгоритму, добавляет тень, потом кладёт их на фон, сверху водяной знак и потом ещё сортирует по нужным папкам.
С некоторых пор стал активно использовать ChatGPT для написания простых скриптов для автоматизации действий. Это не руководство к действию и не «волшебные промпты», лишь описываю свой опыт.
Начну с выводов (дальше статью можно не читать):
Пишите на Python
Всё просто, это языковая модель, она обучалась на образцах. Образцов чего было больше всего? Правильно, вы угадали.
Вот рейтинг знаний языков программирования, который мне составил сам ChatGPT:
Вот список языков программирования и моя оценка возможности писать на них скрипты:
Python - 10/10
JavaScript - 8/10
Java - 7/10
C++ - 7/10
C# - 6/10
Ruby - 6/10
PHP - 5/10
Swift - 4/10
Go - 4/10
Kotlin - 3/10
Понятен смысл, да? Я сначала пытался писать скрипты для сортировки файлов на 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% людей вы именно программист и есть😂
Наверное, но написать ничего не могу. Ну т.е. знание языка у меня примерно ноль.
Это легко поправить, но это время и изменение образа жизни. В программирование нельзя вкатиться на «полшишечки».
Осталось научить читать его спецификации API и фигачить сервисы на их основе, и всё будет ваще зашибись.
Ну вот сейчас они делают плагины и один из них это доступ к интернет. Можно будет скармливать документацию по API (надеюсь).
В этом нет проблем, оплачиваешь OpenAI API, быстренько накидываешь скрипт на питоне который векторзирует спецификации твоего API (о котором реальный chat gpt не знает). И задаёшь по нему вопросы, просишь написать код. Делов на часик
Понятный хрен на питоне такое проще всего сделать, для "одноразовых" скриптов он идеален. Но везде есть свои плюсы и минусы. Например на питоне полноценное настольные приложение с графическим интерфейсом сделать это лютый геморрой и извращение. А вот на Яве как два пальца об асфальт. )
Десктопное приложение на яве тоже извращение