Портал The New Stack приводит обзор того, как разработчики используют GPT-4 от OpenAI для программирования, а также советы от ChatGPT.

Разработчики нашли множество нетривиальных применений для GPT-4, новейшей большой языковой модели (LLM) OpenAI. В недавней ветке Hacker News разработчики поделились тем, как они используют LLM. Ниже собраны их лучшие предложения, а также дополнительные предложения от самого ChatGPT о том, как разработчикам следует его использовать.

Предложения разработчиков

1. SQL-запросы

Один из авторов сообщает, что у него плохо получается писать SQL-запросы с кучей джойнов. Поэтому он просто показал боту определения таблиц и сказал, что ему нужно. Как это часто бывает с ИИ, может потребоваться несколько итераций, чтобы добиться нужного результата, предупреждает автор сообщения.

2. Написание RegExps

Тот же комментатор использует ChatGPT-4 для написания регулярных выражений. «Он отлично справляется с ними», — сообщил программист.

3. Прототипы

Другой программист применяет ChatGPT-4 для мозгового штурма и создания прототипов подходов к решению проблемы. В частности, он использует его в основном для конвейеров машинного обучения, небольших сайтов на React и интерфейсов командной строки (CLI) на Python.

«Сначала я прошу его дать мне обзор проблемной области; это создает контекст LLM, — сообщил он. — Затем я описываю проблему и прошу его сгенерировать решения, а также аргументы „за“ и „против“ каждого подхода. Это итеративный процесс: вы можете задавать ему вопросы, изменять его предложения и периодически подводить итоги. После этого вы можете либо попросить его предоставить вам код для прототипа, либо создать его самостоятельно».

4. Rubberducking

Rubberducking — это практика отладки кода путем объяснения проблемы на устном или письменном естественном языке. Она происходит от истории из книги «Прагматичный программист», в которой программист носит с собой резиновую утку и отлаживает свой код, заставляя себя объяснять его, строчка за строчкой, этой утке. По словам одного программиста, ChatGPT-4 можно использовать для объяснения кода, строка за строкой.

5. Персональное репетиторство

Хотя ChatGPT-4 «еще не дошел до этого» — речь идет о чистой разработке или рецензировании — он хорош для разъяснения последующих вопросов в качестве виртуального наставника, сообщил один из пользователей.

6. Кодирование базы данных; 7. Обнаружение ошибки в метрике; 8. Ускорение цикла тестирования; 9. Уменьшение нагрузки на сборщик мусора и ужесточение обработки некоторых таймеров; 10. Обнаружение ненужных утверждений типов

Разработчик Филипп О’Тул использовал ChatGPT-4 для пунктов 6-10 и многого другого. Это сэкономило ему так много времени и так понравилось, что он написал пост о том, как это помогло ему в написании базы данных. В какой-то момент он не понял, как предложенные ChatGPT-4 изменения помогут снизить нагрузку на сборщик мусора, и попросил объяснить, что и было сделано. Он внес изменения.

11. Написание микробенчмарков для C++

«Они всегда компилируются, но требуют некоторого редактирования», — отметил разработчик Саймон Боэм. Также требуются хорошие подсказки, добавил он.

12. Объяснение ассемблерного кода

Еще один способ, которым Боэм использовал ChatGPT-4 — просто «сбрасывал в него обычный вывод objdump — S».

13. Оптимизация кода для уменьшения использования памяти

«Мне нужно было оптимизировать некоторый код на Python, чтобы уменьшить использование памяти, — рассказал Витор Баптиста. — Перепробовав все идеи, которые только можно было придумать, я подумал о том, чтобы переписать его на другом языке. Скопировал и вставил код в ChatGPT-4. Сначала попробовал Rust, но там было слишком много ошибок компиляции. Затем я попробовал Go, и он отлично сработал».

Разработчик никогда не работал с Go и использовал ChatGPT-4 для улучшения кода на Go. «Он дал мне отличные ответы, думаю, может быть, один или два раза код не компилировался (я использовал его десятки раз в день), — написал Баптиста. — Сейчас я использую оптимизированный Go-код в продакшене».

14. Кодирование на JavaScript (или любом другом языке, который не является вашей сильной стороной)

Другой программист использует ChatGPT для генерации кода на языках, которые не так хорошо ему известны. «Мой JavaScript не самый сильный, поэтому мне, скорее всего, пришлось бы потратить 30-45 минут на то, чтобы заново освоить базовый AJAX и современный синтаксис, — посетовал он. — Или можно было написать схему моей идеи и получить ответ GPT, чтобы перенести мою идею на бумагу с более-менее приличным стилем и синтаксисом», — заявил программист. «Дальше я сам разобрался», — добавил он.

15. Поиск способа сделать что-то

«GPT-4 плохо справляется с задачами и отлично справляется с поиском информации, — говорится в одном из отзывов. — Вместо того чтобы пытаться заставить его сделать что-то, я спрашиваю его, как мне это сделать».

16. Написание фронтенда

Один разработчик использовал GPT-4 для написания простого приложения React, чтобы протестировать конечную точку. Когда код заработал, разработчик вернул приложение в ИИ и попросил сделать его «более визуально привлекательным» — и тот сделал это.

17. Тестирование и документирование

Один из главных прогнозов в отношении ИИ заключается в том, что его будут кастомизировать для тестирования. Один автор уже использует его для модульного тестирования и документирования. «Я нахожу, что код, который он выдает, не идеален, но получить некоторые шаблоны и исправить их можно довольно быстро по сравнению с написанием с нуля», — заявил он. В основном комментатор использовал этот способ для написания на Python и Bash, а также «с некоторыми Makefiles и Dockerfiles».

20. Построение запросов OpenSearch (или ElasticSearch)

«Я был новичком в этой технологии, и разобраться с синтаксисом требовало времени. Вместо этого я просто сообщил ChatGPT формат документа, а затем запросил конкретные данные на естественном языке, — написал один из пользователей. — Должен честно предупредить, что запросы не всегда получались идеальными с первой попытки, но это было намного проще, чем разбирать ответы на похожие вопросы на Stack Overflow. Сейчас я в основном пишу свои собственные запросы, но ChatGPT действительно помог мне начать».

21. Начало работы в целом

Получаемый код может быть не идеальным, но ряд разработчиков сказали, что используют GPT-4 для начала работы над задачами кодирования. Один из них использовал его, чтобы начать работу с TypeScript и React. По сути, ИИ выступает в роли трамплина для обучения тому, как сделать что-то сложное.

Итеративно попросите бота обобщить все, что было согласовано, прежде чем просить его написать код, посоветовал другой программист.

22. Обработка изображений

Один программист рассказал об использовании GPT-4 для обработки изображений в OpenCV. «Это сэкономило много времени, которое я потратил бы на выяснение необходимых преобразований и матричных операций», — написал разработчик.

23. Shell Scripting

По словам одного из комментаторов, ChatGPT-4 отлично подходит для любого типа скриптов оболочки и хорошо работает для уточнения определений типов. Другой разработчик, у которого не было опыта работы с сетевым крейтом для асинхронного исполнения, сообщил об использовании ChatGPT-4 для создания работающего WebSocket-сервера в Rust.

Предложения ChatGPT

Вдохновленный этими идеями, The New Stack решил спросить у самого ChatGPT-4, как разработчики могут лучше всего использовать его для создания приложений. Вот что он предложил:

24. Обработка естественного языка

Интегрируйте ChatGPT-4 в свое приложение, чтобы обеспечить понимание и генерацию естественного языка. ИИ может помочь в таких задачах, как перевод языка, анализ настроения, завершение текста и резюмирование.

25. Разработка чатбота

ChatGPT-4 можно использовать в качестве бэкенда для создания чатботов. Он может помочь разработчикам создать интерактивный пользовательский опыт, генерируя ответы на основе запросов или инструкций пользователя.

26. Генерация контента

Если ваше приложение требует создания контента, например, статей, описаний продуктов или постов в социальных сетях, вы можете использовать способности ChatGPT-4 к генерации языка для создания связного и контекстуально подходящего текста. И действительно, один из разработчиков сообщил об использовании ИИ для создания страниц вики-статей для разрабатываемой энциклопедии.

27. Исследования и помощь в получении знаний

Этот вариант кажется наиболее очевидным, но он нетривиален. ChatGPT также может использоваться для резюмирования Dense Passages, которые разработчики могут найти в своих исследованиях.

28. Интеграция виртуального помощника

Включите ChatGPT в приложения виртуального помощника для обеспечения интеллектуальных и контекстно-зависимых ответов. ИИ может помочь пользователям с такими задачами, как составление расписания, напоминания, рекомендации и поиск общей информации.

29. Следование лучшим практикам генерации и отладки кода

Это может показаться повторением, но стоит отметить, что ИИ-чатбот также может дать представление о концепциях программирования и лучших практиках.

30. Моделирование взаимодействия с конечным пользователем

«Наймите меня для моделирования взаимодействия с пользователем и тестирования функциональности вашего приложения, — предлагает ИИ. — Вы сможете генерировать образцы входных данных, оценивать выходные данные и проводить тестирование на основе сценариев».