Недавно я добавил в свой блог 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 лет.