Первый вкус Кодекса

Испытание системы автоматической генерации кода OpenAI

Одним из ярких моментов моей технической жизни в 2020 году был доступ к GPT-3. Благодаря совету, предоставленному в этом видео, я смог получить доступ к GPT-3 и опубликовать серию видеороликов, описывающих эксперименты, которые я проводил с GPT-3 для генерации команд git с английского языка h, для создания чат-бот «мелочи кино, а также для навигации в лондонском метро и метро Нью-Йорка.

Я был впечатлен разнообразием проблем, с которыми может справиться GPT-3, поэтому, когда я услышал о Кодексе, мне не терпелось попробовать его. Кодекс сосредоточился на одной из возможностей GPT-3, генерируя код из описаний на английском языке. Codex генерирует код на разных языках, включая Python и JavaScript. Я использую JavaScript нечасто, поэтому, как только я получил доступ к Codex, я подумал, что было бы неплохо использовать его с некоторыми простыми сценариями использования JavaScript. Я достаточно знаком с JavaScript, чтобы исправить простые проблемы с тем, что генерирует Codex, но в то же время я достаточно много работаю с JavaScript, чтобы получить выгоду, если Codex может сгенерировать для меня какой-то код.

В этой статье я опишу, что я узнал из первоначального эксперимента с Кодексом.

Цель

Для этого начального эксперимента я хотел, чтобы Кодекс сгенерировал простую веб-страницу, которая позволила бы мне выбрать штаты США и, когда было выбрано состояние, отображать карту для этого штата.

Должен отметить, что изначально я пытался провести этот эксперимент для канадских провинций, а не для штатов США. Я столкнулся с некоторыми проблемами, которые, как я подозреваю, были связаны с тем, что учебных материалов для провинций Канады было меньше, чем для штатов США. Как только я переместил предметную область из провинций Канады в штаты США, я смог получить достойные результаты для своего варианта использования.

Эксперимент

Начать работу с Кодексом было действительно легко. Электронное письмо с доступом, которое я получил от OpenAI, привело меня к среде бета-тестирования и указывало на то, что я хотел, - песочницу JavaScript. В песочнице я ввел следующие запросы для генерации кода:

  • Контроль со штатами США:
create a selection list of the states of the united states
  • Это приглашение сгенерировало следующий код JavaScript:
  • Начальное изображение карты для первого состояния в списке выбора. Я узнал, что мне нужно заполнить Кодекс URL-адресом изображения, которое имеет регулярную структуру, которая будет создавать допустимые URL-адреса изображений, когда имя исходного состояния было заменено другими именами состояний. Я также узнал, что, явно называя элемент управления (например, «map_image»), я мог бы конкретно ссылаться на него в следующих шагах:
display an image of a map of Alabama sized 40% from https://www.nationsonline.org/maps/USA/Alabama_map.jpg. call the image "map_image"
  • Это приглашение сгенерировало следующий код JavaScript:
  • Замена исходного изображения карты изображением карты текущего выбранного состояния. Я узнал, что для создания действительных URL-адресов для изображений штатов с названиями из нескольких слов (например, Нью-Джерси, Южная Дакота) мне нужно было явно попросить Кодекс заменить пробелы в названиях штатов символами подчеркивания:
when a state is selected from the selection list, replace map_image with the image of the map of that state. Replace spaces with underscores in the state names
  • Это приглашение сгенерировало следующий код JavaScript:

Это подсказки, которые мне понадобились для моего простого приложения и кода, который они сгенерировали.

Результаты эксперимента

После небольшого количества проб и ошибок в приведенных выше запросах был получен код, который сгенерировал то, что я хотел, в песочнице Codex JavaScript:

После того, как я протестировал приложение в песочнице JavaScript, я нажал кнопку Экспорт в JSFiddle, чтобы перейти к Fiddle:

В Fiddle код JavaScript, созданный Codex на площадке для JavaScript, был обернут в HTML. Я мог бы сохранить этот HTML-код, чтобы получить автономную версию приложения.

Заключение

С помощью всего трех запросов и небольшого количества проб и ошибок я смог получить простое автономное приложение от Codex. Как случайный пользователь JavaScript, я очень ценил Codex заботу о деталях синтаксиса. Когда я получил неожиданные результаты (например, несколько карт вместо отображения только карты для текущего выбранного состояния), было легко отладить проблему, внести обновления в сгенерированный код и исправить проблему.

  • Вы можете увидеть результат эксперимента здесь.
  • Вы можете посмотреть видео о соответствующем эксперименте Кодекса здесь: https://youtu.be/d9sbsSA8xS4