Создан инструмент, который «на лету» и без участия человека исправляет ошибки в коде на Python
«Самоисцеляющиеся» скрипты на Python стали реальностью благодаря GPT-4. В Сети появилась бесплатная программа-обертка Wolverine, которая при помощи новой версии языковой модели OpenAI находит и устраняет ошибки, препятствующие нормальной работе «скормленных» ей Python-скриптов, параллельно объясняя разработчику, чем эти ошибки обусловлены. Работа программы продолжается, пока все баги не будут устранены.«Росомаха» и Python
Продвинутой языковой модели GPT-4 компании OpenAI нашли применение в качестве полностью автоматического инструмента поиска и устранения ошибок в ПО.
Разработчик под псевдонимом BioBootloader создал экспериментальный инструмент, который позволяет программам, написанным на языке Python, самостоятельно избавляться от присутствующих в них ошибок. Он назван Wolverine («Росомаха») – в честь одноименного вымышленного персонажа вселенной Marvel, мутанта, обладающего сверхчеловеческой способностью к регенерации. Ключевая роль в процессе поиска и устранения багов отведена новейшей языковой модели компании OpenAI – GPT-4. Об этом сообщил портал Hackaday.
Wolverine представляет собой достаточно простую программу-обертку для пользовательских Python-скриптов, которая также написана на Python. Она обеспечивает взаимодействие с языковой моделью через соответствующий API, внесение предложенных ей изменений и создание резервных копий оригинального скрипта.
Исходный код программы опубликован на хостинге ИТ-проектов GitHub, принадлежащем корпорации Microsoft, и насчитывает всего 153 строки, включая комментарии.
Главное – правильно сформулировать запрос
Пожалуй, более важным компонентом инструмента является файл “prompt.txt”, содержащий основную часть универсального запроса к сервису OpenAI длиной в 268 слов.
С его помощью BioBootloader дает модели установку, согласно которой та якобы является участником элитной команды по устранению ошибок в программном обеспечении. GPT-4 предлагается проанализировать переданный ей текст скрипта и данные трассировки стека в случае его «аварийного» завершении в ходе выполнения, определить и сформулировать причину возникновения ошибки, а также предложить поправки к коду, которые позволят ее устранить. Отдельное внимание уделено форме ответа на запрос, которому следует придерживаться модели. В частности, автор настаивает на строгом соответствии выдачи ИИ формату JSON.
Демонстрация работы
Работа инструмента демонстрируется на примере обработки небольшого Python-скрипта. Этот скрипт представляет из себя реализацию простейшего калькулятора с поддержкой интерфейса командной строки. В качестве аргументов он принимает словесное обозначение математической операции (например, “multiply_numbers” – перемножение двух чисел) и соответствующие ей операнды.
ВioBootloader при подготовке этого тестового скрипта целенаправленно допустил две ошибки. Во-первых, одна из функций, определенных в коде, возвращает значение ранее неопределенной переменной. Во-вторых, из кода скрипта полностью исключена функция “substract_numbers”, которая отвечает за операцию вычитания и непременно вызывается в ходе тестирования.
На практике «прогон» скрипта с ошибками через Wolverine позволил обнаружить и устранить все ошибки в два этапа, причем даже те, которые не приводили к прерыванию выполнения программы. Примечательно, что в ходе второй итерации GPT-4 исправила собственную же ошибку – ранее, добавляя новый код, она не учла особенности синтаксиса Python и пропустила обязательный отступ.
Всего лишь прототип
Разработчик не скрывает, что набросал прототип всего за несколько часов и обещает дальнейшие улучшения. Согласно описанию проекта на GitHub, в планах – расширение перечня поддерживаемых языков программирования, более изящный подход к работе с большими файлами (передача модели не всего содержимого исследуемого скрипта, а лишь отдельных классов или функций), поддержка проектов, включающих несколько файлов, поддержка дополнительных флагов, определяющих сценарий работы инструмента и др.
И швец, и жнец, и на дуде игрец
Языковые модели в последнее время приобрели огромную популярность в различных сферах жизни. Несколько небольших стартапов настолько впечатлялись способностями GPT-4, что начали заменять им программистов. Кроме того, сервисы OpenAI облюбовали злоумышленники, которые используют их для написания вредоносов и фишинговых сообщений.
GitHub, на котором размещен проект Wolverine, сам предлагает коммерческие инструменты в помощь разработчику ПО в рамках ИИ-сервиса Copilot. В феврале 2023 г. CNews писал о запуске общедоступной подписки на Copilot для бизнеса – за $19 в месяц с человека.
Чат-бот ChatGPT, построенный на модели OpenAI GPT, с переменным успехом пишет дипломные работы, генерирует лицензионные ключи для операционной системы Microsoft Windows 95. Его конкурент Bard разработки Google строит теории заговора и обличает экс-главу Microsoft филантропа Билла Гейтса (Bill Gates).