Про генерацию кода искусственным интеллектом
Понадобилось мне для OutWiker сделать новый контрол для выбора цвета. Это должен быть выпадающий список (в простонародье — ComboBox), который вместо текста отображал бы прямоугольники разных цветов. Я очень не люблю делать свои контролы, но в какую сторону копать было понятно. Решил эту задачу переложить на братьев наших меньших (а в перспективе — больших), то есть на искусственный интеллект, и попросить его сгенерировать код.
Начал с Copilot. Результат меня прям очень впечатлил. Первоначальный запрос был такой:
«Напиши код компонента на Python с использованием библиотеки wxPython, который использует wx.adv.OwnerDrawnComboBox, чтобы выбирать цвет с помощью выпадающего списка. Каждый элемент выпадающего списка должен отображаться в виде прямоугольника своего цвета. Напиши код приложения, который этот компонент использует.»
Код получился почти сразу рабочий, в течение нескольких запросов поправили некоторые косяки и даже улучшили внешний вид. Через полчаса в первом приближении я получил то, что хотел и потом буду исходники допиливать напильником. После этого даже не особо надеясь, что ИИ поймет, что мне надо, написал ему еще одну хотелку:
«Пусть теперь нулевой элемент будет обозначать «цвет по умолчанию» и выводиться текстом, а последний элемент списка — «Выбрать цвет» и тоже выводиться текстом.»
Удивительно, но он сделал именно то, что я имел в виду. В процессе общения поправили некоторые мелочи, и оно заработало.
После этого мне стало интересно сравнить результат с другими нейронками. Начал с Яндекс GPT 4. Результат получился унылый. Работающего контрола от него я так и не добился. В выпадающем списке цветные прямоугольники он не смог нарисовать (хотя честно пытался, но все время что-то было не то).
Попробовал после этого нейронку от Сбера — GigaChat. С ним пришлось помучиться подольше, чем с Copilot, — приходилось часто указывать конкретные строки, где ИИ был не прав, и что там должно быть. Но в итоге контрол начал делать то, что от него требуется, хотя некоторые оформительские моменты придется за ним все-таки править руками. А на дополнительной хотелке нейронка ушла в бесконечный цикл и начала писать без передыху по три одинаковые строчки, которые к делу вообще не относятся. В другой раз по этому же запросу у нее перепутались код и комментарии к нему. Ну ладно, с бонусом она не справилась, но в целом тоже молодец.
Еще я на днях локально себе поставил опенсорсную нейронку Llama 3 (запускал через ollama). Код, который она генерила, тоже с ходу не заработал. Но еще у меня и комп для нее слабоват. Сначала ИИ отвечал относительно шустро, но если надо было исправить ошибку, то он начинал думать минут 10, и результат совсем не впечатлял. В общем, у меня не хватило терпения заставить эту нейронку написать рабочий код.
PS. Если кому интересно, то вот код, который в итоге получился у Copilot. Для получения этого кода понадобилось 7 запросов. И код, который получился у GigaChat . Сколько понадобилось запросов для получения этого кода не знаю, потому что история не сохранилась.
Для запуска этих исходников нужна библиотека wxPython.
PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
Ignizavr:
Здравствуйте.
18 декабря 2024, 12:14 ппБыло интересно прочитать про генерацию исходников с помощью ИИ, хотя я не пользуюсь генерациями ИИ (не только в плане софта) отчасти по идейным соображениям.
Но дело не в том. Просто ссылки на «код» в постскриптуме не работают. О чем и сообщаю.
Jenyay:
Хм, наверное сервис не долго хранит сохраненный код. Ну ладно.
18 декабря 2024, 7:43 пп