Недавно я завершил эксперимент: создал многофункционального Telegram-бота, не написав ни строчки кода самостоятельно. Весь python код был сгенерирован нейросетью Claude Sonnet на основе моих текстовых инструкций.
Результат превзошел мои ожидания и показал, насколько далеко продвинулись возможности ИИ в генерации кода за последний год. Видео демки:
О боте
Созданный ТГ-бот @korenev_ai_bot — это нейрофотограф и нейростилист в одном лице. Он позволяет пользователям:
-
Увидеть себя в разных образах (безумный ученый, звезда кино, бомж, Барби и т.д.)
-
Изменять элементы фотографии (например, заменить футболку на пиджак)
-
Создавать нейрофотографии в различных стилях
Технологии под капотом
В боте задействованы две нейросети:
-
Stable DiffusionXL — отвечает за генерацию изображений
-
GPT4o-mini — генерирует инструкции для Stable Diffusion при выборе персонажей и выполняет перевод на английский в режиме нейростилиста
Основной функционал
-
? Нейростилист: замена элементов фото
-
? Нейрофотограф: создание фото в разных стилях
-
? Стань героем: широкий выбор персонажей и возможность задать свое описание
-
?Эксперименты с телосложением: от худого до мускулистого
Техническая реализация
В боте реализованы:
-
4 меню для различных функций
-
Опрос пользователей
-
Логирование в файлы и Telegram-канал
Масштабирование проекта и достижение пределов
По мере развития, проект значительно вырос в объеме и сложности. То, что начиналось как пара файлов, превратилось в полноценное приложение:
-
Количество файлов: с 2 до 16
-
Общий объем кода: около 1400 строк
Достижение пределов возможностей
В ходе разработки я, кажется, нащупал текущие границы возможностей Claude в области генерации кода. Признаки этого:
-
Сложности с контекстом: При работе с большим количеством файлов Claude стал чаще «забывать» детали ранее написанного кода.
-
Ограничения в сложности логики: Некоторые более сложные алгоритмические задачи требовали многократных итераций и уточнений.
-
Время обработки: Генерация и модификация крупных блоков кода стала занимать заметно больше времени.
Процесс разработки
Первый этап: Быстрый старт
Начальная фаза проекта прошла на удивление гладко и быстро. Я стартовал с обычного чата с Claude, придерживаясь следующей стратегии:
-
Интеграция с API: Первым делом я запросил у Claude код для взаимодействия с API сервиса, использующего Stable Diffusion. Для этого я просто предоставил документацию по API и попросил сгенерировать соответствующий код. После получения кода я тщательно протестировал его работоспособность.
-
Создание интерфейса: Следующим шагом стала разработка первого меню Telegram-бота — «Стань героем». Я описал Claude желаемую функциональность и получил готовый код.
-
Объединение компонентов: На третьем этапе я попросил Claude интегрировать код для работы с API и меню бота в единое целое. К моему удивлению, все сразу заработало без серьезных проблем.
Важно отметить, что после каждого шага я тестировал полученный от Claude код и сразу же сообщал о любых ошибках или неточностях. Только убедившись в корректности текущей реализации, я переходил к следующему этапу разработки.
Второй этап: Масштабирование и оптимизация
По мере роста проекта возникла необходимость в более структурированном подходе к разработке. Этот этап характеризовался следующими особенностями:
Реструктуризация кода
-
Разделение на модули: Когда Claude перестал справляться с генерацией полных файлов, я инициировал реструктуризацию. Попросил AI предложить новую структуру файлов и распределить функции между ними.
-
Итеративный процесс: Реструктуризация стала регулярной практикой. Claude иногда «увлекался», помещая слишком много функциональности в один файл, что требовало дополнительных корректировок.
Преодоление ограничений Claude
-
Обновление контекста: Качество ответов Claude снижалось в длинных чатах. Решение: периодический перезапуск диалога с обновленным контекстом.
-
Лимит на файлы: Claude мог работать максимум с 5 файлами одновременно. Для обхода этого ограничения я начал использовать проекты вместо обычных чатов.
Итеративный подход и управление контекстом
По мере роста проекта становилось очевидно, что линейный подход к разработке с помощью AI не всегда эффективен. Часто возникала необходимость «отматывать» диалог (а вместе с ним и код) назад, чтобы актуализировать контекст и внести новые требования.
Изначальная схема работы «Инструкция — Ответ AI — Дополнение к инструкции — Новый ответ AI» постепенно теряла эффективность. Особенно это проявлялось на поздних стадиях разработки, когда проект уже значительно разросся. Claude начинал путаться в деталях или забывать ранее установленные параметры.
Потеря контекста кода
На начальных этапах проекта Claude легко ориентировался в генерируемом коде. Однако с ростом объема и сложности проекта возникла неожиданная проблема: AI начал периодически «забывать» части ранее написанного кода, особенно в больших файлах и сложных функциях.
Внедрение системы контроля версий
Для решения этой проблемы я прибегнул к использованию системы контроля версий Git. Это позволило:
-
Отслеживать все изменения в коде
-
Сравнивать версии, генерируемые Claude
-
Иметь четкое представление об эволюции проекта
Такой подход значительно улучшил процесс разработки и помог сохранить целостность кода даже при работе с большими объемами информации.
Временные затраты на разработку
Проект можно разделить на два основных этапа, каждый из которых потребовал разного количества времени и усилий:
-
Первый этап: Начальная разработка прошла достаточно быстро и легко. На это ушло около двух вечеров без особых затруднений. Этот этап включал в себя базовую настройку и реализацию основных функций бота.
-
Второй этап: Расширение функциональности и решение возникших проблем оказалось более трудоемким процессом. Этот этап занял примерно три полных дня интенсивной работы. Здесь происходила оптимизация кода, решение проблем с контекстом и добавление более сложных функций.
Что дальше?
Этот эксперимент открыл для меня новые горизонты в области AI-ассистированной разработки. У меня появились идеи по оптимизации процесса и преодолению обнаруженных ограничений. В следующий раз подойду к разработке с ИИ более системно. Основными идеями поделюсь в своем Telegram-канале GPT в тапочках. Подписывайтесь!
Коренев Александр
ссылка на оригинал статьи https://habr.com/ru/articles/832146/
Добавить комментарий