Недавно я добавил в свой блог romka.eu возможность автоматической трансляции сообщений в мой Телеграм-канал. Делается это полностью автоматически:
- весь этот блог, это просто иерархия директорий, где каждый пост это одна директория, а текст – файлы
index.ru.md
иindex.en.md
в ней. Для удобства, директория управляется системой контроля версий Git, а все исходники отправляются на Github, - как только новая запись в блоге прилетает на Гитхаб, запускается мой кастомный воркфлоу send_to_telegram.yml, который находит все изменённые последним коммитом файлы и передаёт их в скрипт post_to_telegram.py
post_to_telegram.py
берёт на вход локальный путь к блог-посту или галерее и, если в его конфигурации есть настройкаtelegram: true
, то такой пост будет отправлен в канал через API Телеграма,- API Телеграма возвращает id сообщения в ответ на отправленное сообщение. Этот айдишник коммитится в файл telegram_mappings.csv.
- Далее, если в
post_to_telegram.py
прилетит файл, который уже есть вtelegram_mappings.csv
, то вместо отправки нового сообщения в Телеграм будет отредактировано существующее.
В принципе, в автоматизации выше нет ничего сверхъестественного. Самое интересное – то, что вообще все перечисленные элементы для автоматизации процесса были полностью сгенерированы для меня ChatGPT.
Надо признаться, что я потратил больше дня на то, чтобы, общаясь с ChatGPT, получить удовлетворительно работающий код, и, скорее всего, у меня примерно столько же времени ушло бы, если бы я писал всё сам (фактически, тут вся работа сводится к отправке простых HTTP-запросов).
При этом ИИ несколько раз сильно уходил в сторону. Например, когда я просил его сделать мелкие правки в практически идеально работающем коде, он начинал всё сильно переусложнять. Приходилось самому предлагать ему альтернативные подходы, чтобы код оставался и рабочим, и читаемым.
Фактически, ChatGPT работает как хороший стажёр: выдаёт правдоподобно выглядящий код, который обязательно нужно внимательно поревьюить и в котором почти наверняка есть какие-то требующие исправления косяки.
В своей практике я пробовал использовать несколько других ИИ-инструментов, но пока, к удивлению, ChatGPT остаётся самым адекватным. “К удивлению” – потому что ChatGPT – это модель общего назначения. Я пробовал использовать модельки, специально заточенные под код: ассистент от JetBrains, GitHub Copilot, Claude 3.7 Sonnet. Первые два – невероятно тупые, особенно с учётом того, что они, в отличие от ChatGPT, имеют полный доступ к коду проекта. Последний я не сумел заставить нормально работать: кроме списания денег за каждый запрос к API, он имеет встроенный rate limiter. Любой, даже самый простой запрос, который я ему отправляю, падает с ошибкой превышения лимита. Вероятно, вместе с каждым моим вопросом он пытается отправить в API всю мою кодовую базу. Другого объяснения нарушения лимитов у меня нет.
Вообще, конечно, все эти ИИ-инструменты – это просто фантастика. Лет 10 назад о таком уровне интеллекта ИИ-ассистентов не приходилось даже мечтать. Боюсь представить, во что они эволюционируют за следующие 10 лет.