Узнайте, как программировать с помощью ChatGPT, может ли ChatGPT заменить программистов и какие языки программирования знает ChatGPT?
Одно из самых интригующих открытий о ChatGPT – это то, что он может писать довольно хороший код. Мы проверили это в феврале, когда попросили его написать плагин для WordPress, для сайта. Он отлично справился с задачей, но это был очень простой проект.
Как вы можете программировать с помощью ChatGPT и использовать его для написания кода в рамках вашей ежедневной практики программирования? Вот что мы собираемся исследовать здесь.
Как выбрать язык программирования: шаг за шагом
С какими типами программирования хорошо справляется ChatGPT?
Есть два важных факта о ChatGPT и программировании.
- Первый – это то, что он действительно может писать полезный код.
- Второй – он может полностью запутаться, гоняться за своим хвостом и создавать совершенно непригодный для использования мусор.
Мы решили посмотреть, как далеко может зайти ChatGPT. Мы написали очень тщательную подсказку для приложения для Mac, включая подробное описание элементов пользовательского интерфейса, взаимодействий, того, что будет доступно в настройках, как они будут работать и так далее. Затем отправили его в ChatGPT.
ChatGPT ответил просто потоком текста и кода. Затем он остановился на середине кода. Когда мы попросили его продолжить, он выблевал еще больше кода и текста. Мы просили продолжить снова и снова, и он выбрасывал все больше и больше кода. Но…. ничего из этого не было пригодным для использования.
Он не определил, куда должен идти код, как построить проект, и – когда мы внимательно посмотрели на полученный код – он пропустил основные операции, которые стояли в задании, оставив простые текстовые описания, в которых говорилось, что “логика программы идет сюда”.
После множества повторных тестов стало понятно, что если вы попросите ChatGPT создать полноценное приложение, он потерпит неудачу. Если вы ничего не знаете о программировании и хотите, чтобы ChatGPT создал что-то для вас, он потерпит неудачу.
В чем ChatGPT преуспевает, и делает это очень хорошо, так это в том, что помогает человеку, который уже умеет программировать, создавать определенные процедуры и выполнять определенные задачи. Не просите программу, которая запускается из строки меню. Но если вы попросите ChatGPT создать процедуру для вывода меню в строку меню, а затем вставить ее в ваш проект, это будет довольно хорошо.
Нейросеть, которая рисует онлайн по описанию или по фото: топ 5
Итак, как программировать с помощью ChatGPT?
Также имейте в виду, что, хотя кажется, что ChatGPT имеет огромное количество знаний о конкретной области (и это часто так), ему не хватает мудрости. Таким образом, он может писать код, но он не сможет написать код, содержащий нюансы для очень специфических или сложных проблем, для понимания которых требуется глубокий опыт.
Используйте ChatGPT для демонстрации техник, написания небольших алгоритмов и подпрограмм. Вы даже можете попросить ChatGPT помочь вам разбить большой проект на части, а затем попросить его помочь вам закодировать эти части.
Как работает ChatGPT?
Итак, имея это в виду, давайте рассмотрим некоторые конкретные шаги, как использовать ChatGPT для написания кода.
META запустит модель искусственного интеллекта Code Llama для написания компьютерных кодов
Как ChatGPT может помочь вам в написании кода
Сузьте и конкретизируйте свой запрос
На этом первом шаге вы решаете, что именно вы собираетесь спросить у ChatGPT – но еще ничего не запрашиваете. Решите, что вы хотите, чтобы ваша функция или процедура делала, или что вы хотите узнать, чтобы включить в свой код. Определитесь с параметрами, которые вы будете передавать в свой код, и с тем, что вы хотите получить на выходе. А затем посмотрите, как вы собираетесь это описать.
Представьте, что вы платите программисту за то, чтобы он это сделал. Даете ли вы ему достаточно информации, чтобы он смог выполнить вашу задачу? Или вы слишком расплывчаты, и человек, которому вы платите, скорее всего, будет задавать вопросы или писать что-то совсем не связанное с тем, что вы хотите?
Предположим, мы хотим иметь возможность суммировать любую веб-страницу. Мы хотим загрузить в нее что-то вроде этой статьи и получить краткий итог, хорошо продуманный и уместный. На входе мы указываем URL-адрес веб-страницы. На выходе мы получим блок текста с резюме.
Что такое GitHub Copilot: какая польза разработчикам?
Использование ChatGPT для исследования библиотек и ресурсов
Продолжая пример выше, очень старый способ извлечения данных из веб-страницы заключался в том, чтобы просто найти текст между тегами абзацев HTML.
Но с появлением инструментов искусственного интеллекта гораздо более целесообразно использовать библиотеки искусственного интеллекта для интеллектуального извлечения и обобщения. Одним из преимуществ ChatGPT (и это также область, которую вы можете легко проверить, чтобы избежать его авторитетной, но неправильной модели поведения) является поиск библиотек и ресурсов.
OpenAI (разработчик ChatGPT) продает API-доступ к ресурсам GPT-3 и GPT-4, которые делают именно то, что мы хотим. Но в случае этого примера, предположим, что мы не хотим прибегать к этим посредникам.
Итак, давайте рассмотрим взаимодействие с ChatGPT, чтобы понять, как использовать такой инструмент, бесплатно, с проектом, который работает на PHP.
Надо начать с вопроса для получения информации о том, какие библиотеки предоставляют нужную мне функциональность. Библиотека (для тех, кто читает эту статью, но не является программистом) – это часть кода, к которой программист имеет доступ и которая выполняет большую часть тяжелой работы за него для определенной цели. Большая часть современного программирования заключается в поиске и выборе правильных библиотек. Поэтому это хорошая отправная точка.
Кроме того, мы использовали ChatGPT для написания одной и той же процедуры на 12 популярных языках программирования. Вот как это получилось
Вот первый вопрос:
Опишите десять различных библиотек искусственного интеллекта с открытым исходным кодом (и языки, с которыми они работают), которые я могу использовать для создания резюме основного содержания любой веб-страницы, игнорируя любую рекламу или встроенные материалы.
Это дало именно то, что было нужно, включая упоминание предложений OpenAI. OpenAI отлично подошел бы здесь, но для этого гипотетического проекта мы не хотим закладывать в бюджет плату за API. Поэтому надо сузить вопрос.
Есть ли что-то из этого бесплатным?
ChatGPT подстраховался. Вот что он сказал: “Да, все десять библиотек искусственного интеллекта имеют открытый исходный код и бесплатны для использования. Однако некоторые из них могут иметь ограничения на использование или требовать оплаты за доступ к дополнительным функциям или ресурсам”. Исходя из этого, мы уточнили свой запрос.
Какие из этих библиотек не имеют ограничений на использование и не требуют дополнительной оплаты или лицензирования
Обратите внимание, что это очень похоже на разговор. Нет необходимости переспрашивать первоначальный вопрос. Мы просто углубляемся в ответ так же, как если бы у нас был эксперт под рукой и мы искали бы разъяснения.
В этом случае ChatGPT предложил восемь вариантов библиотек, но ни одна из них не упоминала язык PHP. Итак, вот следующая подсказка:
Из этих 8 библиотек, можем ли мы использовать какую-то из них с PHP?
Он вернул три библиотеки, но мы не были уверены, что каждая из них делает. Поэтому еще один вопрос:
Какая разница между Sumy, Gensim и NLTK? и Если мы хотим создавать резюме новостных статей на веб-странице, какая библиотека будет работать лучше?
Ответ был четким и многообещающим: “Sumy специально разработана для реферирования текста, то есть для создания резюме, которое выделяет самую важную информацию из фрагмента текста”. Итак, теперь пришло время посмотреть, как использовать его с PHP. Мы задали свой последний вопрос для этой части проекта:
Можете ли вы объяснить, как использовать Sumy с PHP?
Не стесняйтесь и вставьте эти вопросы в ваш экземпляр ChatGPT. Обратите внимание, что на шаге 1 мы решили, по какому программному модулю собираемся получить помощь. Затем, на этом шаге, пообщались с ChatGPT, чтобы решить, какую библиотеку использовать и как интегрировать ее в проект.
Это может показаться не похожим на программирование, но это оно и есть. Программирование – это не просто набивание строк кода на странице. Программирование – это выяснение того, как интегрировать все различные ресурсы и системы вместе, и как общаться со всеми различными компонентами вашего решения. Здесь ChatGPT помог сделать такой анализ интеграции.
Кодирование на очереди.
Попросите ChatGPT написать пример кода
Ладно, давайте остановимся на минутку. Эта статья называется “Как программировать с помощью ChatGPT?”. Так оно и будет, но для начала мы просим ChatGPT написать пример кода.
Давайте проясним ситуацию. Если речь идет не об очень маленькой функции, ChatGPT не сможет написать ваш окончательный код. Вам придется его модифицировать. ChatGPT ужасно модифицирует уже написанный код. Поэтому, чтобы получить новый код, вам придется попросить ChatGPT сгенерировать что-то новое. Как я уже выяснил ранее, даже если ваш запрос практически идентичен, ChatGPT может изменить то, что он вам выдает, очень неожиданным образом.
Итак, подведем итоги: ChatGPT не может проверить ваш код или даже изменить его.
Это означает, что вам придется делать это самостоятельно. Как мы знаем, первый проект кода редко является финальным кодом. Поэтому, даже если вы ожидаете, что ChatGPT сгенерирует финальный код, это будет только отправной точкой, где вам нужно будет довести его до конца, интегрировать в ваш более крупный проект, протестировать, улучшить, отладить и так далее.
Но это не значит, что пример кода ничего не стоит. Совсем нет. Давайте посмотрим на подсказку, которую мы написали на основе проекта, который мы уже описали ранее. Вот первая часть:
Напишите PHP-функцию с названием summarize_article.
На вход summarize_article будет передан URL-адрес статьи на новостном сайте, например, ZDNET.com или Reuters.com.
Мы указываем ChatGPT язык программирования, который он должен использовать. Также сообщаем ему входные данные, но при этом предоставляем два сайта в качестве образцов, чтобы помочь ChatGPT понять стиль статьи. Честно говоря, мы не уверены, что ChatGPT не проигнорировал эти подсказки.
Внутри summarize_article получите содержимое веб-страницы по указанному URL-адресу. Используя библиотеку Sumy из PHP и любые другие необходимые библиотеки, извлеките основную часть статьи, игнорируя любую рекламу или встроенные материалы, и сократите ее примерно до 50 слов. Убедитесь, что резюме состоит из полных предложений. Вы можете превысить 50 слов, чтобы закончить последнее предложение, если это необходимо.
Это очень похоже на то, как мы бы проинструктировали работника. Мы хотели бы, чтобы этот человек знал, что он не ограничен только Sumy. Если ему нужен другой инструмент, мы хотим, чтобы он им воспользовался.
Также указали примерное количество слов, чтобы создать границы для того, что хотим получить в качестве резюме. В завершение указали, что мы хотим получить в результате:
После завершения обработки измените код summarize_article так, чтобы он возвращал резюме в виде обычного текста.
Полученный код довольно прост. ChatGPT обратился к другой библиотеке (Goose), чтобы получить содержимое статьи. Затем он передал его в Summy с ограничением в 50 слов, а затем вернул результат. Вот и все. Но после того, как основы написаны, это всего лишь вопрос программирования, чтобы вернуться назад и настроить то, что передается в две библиотеки, и выдать результат.
Еще один интересный момент. ChatGPT создал образец вызова написанной им процедуры, используя URL-адрес после 2021 года (когда набор данных ChatGPT закончится).
Мы проверили этот URL-адрес как на сайте Reuters, так и в Wayback Machine, и он не существует. ChatGPT только что придумал его.
Заменит ли ChatGPT программистов?
Не сейчас, или, по крайней мере, пока нет. ChatGPT программирует на уровне талантливого студента-первокурсника, но он ленив (как тот студент-первокурсник).
Это может уменьшить потребность в программистах очень начального уровня, но на текущем уровне это просто облегчит жизнь программистам начального уровня (и даже программистам с большим опытом) в написании кода и поиске информации.
Это определенно экономит время, но есть немного программных проектов, которые он может выполнить самостоятельно – по крайней мере, сейчас. А в 2030 году? Кто знает.
Как я могу получить ответы на вопросы в ChatGPT?
Просто спросите его. Выше вы видели, как использовать интерактивный диалог обсуждения, чтобы сузить круг необходимых ответов.
Когда вы работаете с ChatGPT, не ждите, что один вопрос магическим образом сделает всю работу за вас. Но используйте ChatGPT как помощника и ресурс, и он даст вам много очень полезной информации. Конечно, проверьте эту информацию – ведь, как говорит Джон Шульман, соучредитель OpenAI, “Мы больше всего беспокоились о фактичности, потому что модель любит выдумывать вещи”.
Какие языки программирования знает ChatGPT?
Большинство из них. Мы протестировали распространенные современные языки, такие как PHP, Python, Java, Kotlin, Swift, C# и другие. Но потом попросили его написать код на непонятных языках темных веков, таких как COBOL, Fortran, Forth, LISP, ALGOL, RPG (генератор программ-отчетов), и даже на языке ассемблера IBM/360.
Как вишенка на торте, дали ему такое задание:
Напишите последовательность, которая выводит “Hello, world” в виде мигающих индикаторов ascii на передней панели PDP 8/e.
И ChatGPT фактически продемонстрировал инструкции по переключению программ с помощью переключателей на передней панели. Мы были поражены, восхищены и немного напуганы.
Так каков же итог? Честно говоря, ChatGPT может быть очень полезным инструментом. Просто не приписывайте ему сверхспособностей. Пока что.
Источник: https://www.zdnet.com/