OpenAI создала мощный инструмент ChatGPT, обученный на больших объёмах текстовых данных, благодаря чему модель умеет генерировать связные тексты и код, похожие на работу человека. ChatGPT помогает разработчикам решать задачи с кодом и быстро предлагать решения, однако эффективная работа с ним требует чётких промптов.
Нельзя полагаться на модель как на полностью автономную замену программиста: она всё ещё относительно новая, может допускать ошибки и не всегда правильно учитывать контекст. Тем не менее ChatGPT отлично подходит для поиска багов, генерации простых фрагментов кода и экономии времени — вместо долгих поисков на Stack Overflow можно получить рабочее решение за считанные минуты при хорошо сформулированном запросе.
Ключевая сложность в работе с ChatGPT — составление корректных промптов. Ниже приведён набор готовых промптов, сгруппированных по задачам: генерация кода, доработка, отладка, ревью, работа с NLP, документация, оптимизация запросов, DevOps и другие. Эти шаблоны помогут получать от модели более точные и полезные ответы.
Промпты для написания кода — генерация кода с помощью ChatGPT (промпты, генерация кода, примеры)
Создай [язык] скрипт для парсинга [формат файла] и извлечения [информация] со следующими требованиями: [список требований].
Разработай микросервис на [языке] для [домена], который включает конечные точки для [список операций] и придерживается [паттерн проектирования].
Напиши функцию на [языке] для фильтрации [структуры данных] на основе [условия] со следующими входными данными: [входные переменные] и ожидаемыми выходными данными: [описание выходных данных].
Разработай алгоритм на [язык] для решения [проблемы] с использованием [стратегия или техника].
Реализуй функцию [языка], которая асинхронно обрабатывает [задачу] со следующими входными данными: [входные переменные] и ожидаемыми выходными данными: [описание выходных данных].
Промпты для доработки кода — автозавершение и продолжение реализации (доработка кода, автодополнение)
Допиши код на языке [язык] для парсинга [формат файла] и извлечения [информация]: [фрагмент кода].
Заверши реализацию [языка] для [паттерна проектирования] для [варианта использования]: [фрагмент кода].
Допиши недостающий [язык] код для реализации механизма кэширования для следующей функции: [фрагмент кода].
Допиши код на [языке] для преобразования [структуры данных] в [формат вывода]: [фрагмент кода].
Заверши реализацию многопоточного решения на [языке] для решения [проблемы]: [фрагмент кода].
Промпты для поиска багов и отладки — выявление ошибок и проблем производительности (отладка, баги, уязвимости)
Найди ошибки логики в следующем фрагменте кода на [языке]: [фрагмент кода].
Определи потенциальные проблемы производительности в коде на [языке]: [фрагмент кода].
Найди утечки ресурсов в следующем [язык] коде и предложи способы их устранения: [фрагмент кода].
Проверь наличие потенциальных дедлоков в данном [язык] коде: [фрагмент кода].
Проверь этот [язык] код на наличие потенциальных уязвимостей SQL-инъекций: [фрагмент кода].
Промпты для код-ревью — анализ качества кода, логирования и тестового покрытия (code review, улучшение кода)
Проанализируй приведённый [язык] код на предмет признаков проблемного кода и предложи улучшения: [фрагмент кода].
Проверь [язык] код на предмет правильности логирования и мониторинга: [фрагмент кода].
Проанализируй [язык] код на предмет потенциальных проблем масштабируемости: [фрагмент кода].
Оцени тестовое покрытие этого [язык] кода: [фрагмент кода].
Оцени [язык] код на совместимость с [платформой или технологией]: [фрагмент кода].
Промпты для обработки естественного языка (NLP) — классификация, суммаризация и извлечение сущностей (NLP, классификация)
Выполни классификацию для текста: [текст].
Сформируй краткое изложение этой расшифровки видеозаписи: [текст].
Проанализируй эмоциональную тональность следующих отзывов о товаре: [текст].
Определи ключевые фразы в этих сообщениях в социальных сетях: [образец текста].
Извлеки информацию из этого структурированного текста: [образец текста].
Промпты для написания API-документации — генерация спецификаций и руководств (документация API)
Создай шаблон документации API для следующего [язык] кода: [фрагмент кода].
Сгенерируй руководство пользователя для данного [язык] RESTful API: [фрагмент кода].
Задокументируй функциональность и использование этого инструмента командной строки для [язык]: [фрагмент кода].
Создай справочник API для данной [язык] библиотеки или фреймворка: [фрагмент кода].
Создай руководство по использованию [язык] API с примером кода: [фрагмент кода].
Промпты для оптимизации запросов и баз данных — SQL, GraphQL, NoSQL и временные ряды (оптимизация запросов)
Оптимизируй этот GraphQL-запрос с целью повышения производительности: [GraphQL-запрос].
Проанализируй этот SQL-запрос на предмет правильного индексирования: [SQL-запрос].
Предложи улучшения в этой схеме базы данных для повышения производительности запросов: [описание схемы].
Сравни производительность этого NoSQL-запроса с использованием различных NoSQL-баз данных (например, MongoDB, Cassandra, Couchbase): [NoSQL-запрос].
Оптимизация запросов для баз данных временных рядов (TimescaleDB, InfluxDB)
Оптимизируй запрос к базе данных для базы данных временных рядов (например, InfluxDB, TimescaleDB): [запрос временных рядов].
Проанализируй запрос временных рядов на предмет возможных проблем с производительностью: [запрос временных рядов].
Предложи стратегии индексирования или разбиения на разделы для следующего запроса к базе данных временных рядов: [запрос временных рядов].
Сравни производительность этого запроса с использованием различных баз данных временных рядов (например, InfluxDB, TimescaleDB, OpenTSDB): [запрос временных рядов].
Промпты для чат-ботов и разговорного ИИ — сценарии и диалоги (чат-бот, разговорный ИИ)
Напиши тексты для чат-бота, который занимается управлением бронирования [тип бронирования].
Создай схему взаимодействия с чат-ботом, помогающую пользователям сравнивать и выбирать [продукты или услуги] в зависимости от их потребностей.
Разработай разговорный скрипт для чат-бота, предоставляющего информацию по [теме или области].
Реализуй чат-бот, способный понимать намерения пользователя и реагировать на них в [конкретном контексте или области].
Разработай чат-бот, который сможет давать персонализированные рекомендации по [продукту или услуге] на основе предпочтений пользователя.
Промпты для проектирования интерфейсов — UI/UX макеты и доступность (проектирование интерфейсов)
Создай UI макет для [веб-/мобильной] дашборда, визуализирующего [данные или метрики].
Предложи улучшения существующего пользовательского интерфейса [приложения или веб-сайта] для повышения вовлеченности пользователей.
Разработай пользовательский интерфейс для [веб-/мобильного] приложения, отвечающий правилам доступности и инклюзивности.
Создай макет [web/mobile] приложения, облегчающий совместную работу пользователей для [конкретного случая использования].
Создай библиотеку компонентов пользовательского интерфейса для [веб-/мобильного] приложения, которая соответствует [системе дизайна или руководству по стилю] и поддерживает [тему или настройку].
Промпты для автоматизации тестирования — написание тестов и стратегия тестирования (тестирование, автоматизация)
Напиши тестовый скрипт для заданного [язык] кода, который охватывает [функциональное или нефункциональное] тестирование: [фрагмент кода].
Сгенерируй тестовые сценарии для следующего класса или модуля [языка]: [фрагмент кода].
Разработай стратегию тестирования производительности для [веб-/мобильного] приложения, ориентированную на [задержку, пропускную способность или использование ресурсов].
Создай тест-сьют для библиотеки или фреймворка [языка], проверяющий их функциональность и стабильность.
Разработай стратегию сквозного тестирования для [веб-/мобильного] приложения, покрывающую критические пользовательские сценарии.
Промпты для рефакторинга и улучшения архитектуры — повышение тестируемости и соответствие принципам (рефакторинг)
Предложи улучшения в рефакторинге для [язык] кода с целью повышения тестируемости: [фрагмент кода].
Выяви возможности применения [архитектурного паттерна] в данном [язык] коде: [фрагмент кода].
Оптимизируй следующий [язык] код для уменьшения использования памяти: [фрагмент кода].
Отрефакторь приведённый [язык] код для улучшения обработки ошибок и устойчивости к ним: [фрагмент кода].
Предложи такие изменения в приведённом [язык] коде, чтобы соблюдался [SOLID или другой принцип проектирования]: [фрагмент кода].
Промпты для разработки алгоритмов и ML — эвристики, пайплайны и архитектуры (алгоритмы, ML)
Разработай эвристический алгоритм для решения задачи: [описание задачи].
Повысь точность заданного алгоритма машинного обучения для [конкретного сценария использования]: [алгоритм или псевдокод].
Разработай потоковый алгоритм, способный обрабатывать [данные или события] в реальном времени для [конкретной задачи или операции].
Предложи решение на основе машинного обучения или ИИ для повышения производительности следующего алгоритма: [алгоритм или псевдокод].
Оцени плюсы и минусы данного алгоритма с точки зрения [точности, производительности или использования ресурсов]: [алгоритм или псевдокод].
Промпты для преобразования и портирования кода — миграция между языками и платформами (трансляция кода)
Переведи следующий код на [исходный язык], использующий [шаблон проектирования], на [целевой язык]: [фрагмент кода].
Преобразуй приведённый [исходный язык] пайплайн обработки данных в [целевой язык]: [фрагмент кода].
Перенеси следующий код на [исходный язык], взаимодействующий с [базой данных или сервисом], на [целевой язык] с аналогичной базой данных или сервисом: [фрагмент кода].
Перепиши приведённую реализацию структуры данных [исходный язык] на [целевой язык] с эквивалентными характеристиками производительности: [фрагмент кода].
Адаптируй приведённый фрагмент кода на [исходном языке] к [целевому языку], соблюдая при этом [фреймворк или библиотечные соглашения целевого языка]: [фрагмент кода].
Переведи приведённый метод [исходного языка], выполняющий [конкретную задачу или операцию], на [целевой язык]: [фрагмент кода].
Промпты для персонализированного обучения и планов развития навыков (обучение, карьерный рост)
Составь список ресурсов для изучения [языка программирования или технологии] с учётом предпочитаемого мной стиля обучения: [визуальный/аудиторный/кинестетический].
Порекомендуй путь обучения для получения навыков в [конкретной области программирования или технологии] с учётом моих временных ограничений и целей обучения.
Предложи задачи или соревнования по программированию, которые помогут мне улучшить навыки в [языке программирования или технологии].
Порекомендуй подкасты, видеоролики или другие мультимедийные ресурсы, посвящённые [конкретной теме или концепции] в [языке программирования или технологии].
Определи области совершенствования моих навыков программирования на основе следующего проекта или репозитория [языка]: [URL или описание проекта].
Промпты для написания документации и руководств — README, интеграция и развёртывание (документация)
Напиши руководство по интеграции [библиотеки или сервиса] с [языком программирования или технологией].
Создай пошаговое руководство по развертыванию и масштабированию [приложения или сервиса] в [облаке или платформе].
Составь файл README для проекта [язык программирования или технология], включающий руководство для участников и «дорожную карту» проекта.
Напиши чёткое и краткое объяснение [концепции или техники программирования] и её применения в [отрасли или области].
Создай руководство по сравнению или оценке различных [инструментов, библиотек или фреймворков] на [языке программирования или технологии].
Промпты для анализа требований и проектного планирования (анализ требований, план проекта)
Прочитай следующие требования к проекту и предложи стек технологий или инструментов: [описание требований].
Проанализируй требования к проекту и предложи детальный план проекта с контрольными точками и выходными результатами: [описание требований].
Оцени выполнимость и потенциальные риски следующих требований к проекту: [описание требований].
Предложи изменения или улучшения заданных требований к проекту для повышения [производительности, удобства обслуживания или удобства работы]: [описание требований].
Преобразуй требования проекта в пользовательские истории или сценарии использования: [описание требований].
Промпты для сетей и безопасности — анализ архитектуры и защищённый код (безопасность, сеть)
Проанализируй архитектуру или дизайн сети на предмет потенциальных уязвимостей с точки зрения безопасности: [описание архитектуры или дизайна].
Напиши защищённую функцию или модуль на [языке], который выполняет [конкретную задачу или операцию], предотвращая при этом [угрозу безопасности или уязвимость].
Предложи улучшения в следующем [язык] коде или конфигурации для повышения его сетевой производительности или безопасности: [фрагмент кода].
Разработай безопасный и эффективный протокол для [конкретного случая использования или приложения].
Оцени безопасность данного [язык] кода или конфигурации при взаимодействии с [внешним сервисом или API]: [фрагмент кода].
Промпты для визуализации данных — создание дашбордов и интерактивных графиков (визуализация данных)
Создай визуализацию данных для следующего набора данных: [описание набора данных или URL].
Предложи улучшения существующей визуализации данных для улучшения читабельности и понимания: [описание визуализации или URL].
Разработай дашборд или визуализацию данных, которая подчёркивает [ключевые идеи или закономерности] в наборе данных: [описание набора данных или URL].
Создай визуализацию данных на [языке или библиотеке], позволяющую пользователям взаимодействовать с данными и исследовать [конкретные взаимосвязи или тенденции].
Разработай стратегию визуализации данных для [веб-/мобильного] приложения, представляющего [сложные или масштабные] данные в удобной для пользователя форме.
Промпты для машинного обучения и ИИ — модели, пайплайны и архитектуры (ML, ИИ)
Предложи алгоритм или модель машинного обучения для решения проблемы: [описание проблемы].
Улучши производительность данной модели машинного обучения для [конкретного случая использования]: [модель или фрагмент кода].
Разработай пайплайн машинного обучения для приложения [домен], включающий [предварительную обработку данных, извлечение признаков, обучение модели и оценку].
Предложи архитектуру глубокого обучения для [конкретной задачи или операции] с учётом [ограничений или требований].
Промпты для DevOps и развертывания — CI/CD, контейнеризация и масштабирование (DevOps, развертывание)
Напиши [инструмент или скрипт] для автоматизации развертывания [язык или технология] приложения на [облако или платформу].
Предложи улучшения существующего CI/CD-пайплайна для проекта на [языке или технологии]: [описание конвейера или URL].
Разработай стратегию мониторинга и оповещения для [веб-/мобильного] приложения, развернутого на [облаке или платформе].
Создай Dockerfile или стратегию контейнеризации для [язык или технология] приложения.
Предложи стратегию масштабирования [веб-/мобильного] приложения для обработки [масштабного трафика или высокой пропускной способности] на [облаке или платформе].
Примеры промптов и визуальные примеры

Пример 1

Пример 2

Пример 3
Способность ChatGPT быстро и относительно точно генерировать код делает его полезным инструментом для разработчиков: модель экономит время при поиске решений и помогает объяснять концепции и приёмы программирования, выступая в роли помощника и наставника.
Однако важно помнить, что модель может допускать ошибки и не всегда корректно учитывать контекст проекта. Используйте ChatGPT как вспомогательный инструмент для решения точечных задач, а не как окончательный авторитет.
FAQ: Часто задаваемые вопросы о ChatGPT в программировании (FAQ, ChatGPT, промпты)
— Какие типы промптов по программированию я могу попросить ChatGPT выполнить?
ChatGPT способен выполнять широкий спектр задач: писать функции, создавать скрипты, генерировать примеры использования API, помогать с рефакторингом, находить баги и давать рекомендации по архитектуре.
— Чем ChatGPT отличается от программистов-людей?
ChatGPT — мощный инструмент для быстрой генерации кода и идей, но ему может не хватать практического опыта, глубокого понимания контекста и интуиции, которые есть у опытных разработчиков. Его ответы стоит проверять и дополнять экспертизой человека.
— На каких языках программирования ChatGPT может генерировать код?
Модель умеет генерировать код на множестве языков: Python, JavaScript, C++, Java, Ruby, C#, PHP, Swift, Perl, Go, Shell, R, Lua, Rust, Scala, TypeScript, Kotlin, Dart, Elixir и других.
А как вы относитесь к использованию ChatGPT в рабочих задачах? Делитесь мнением в комментариях.
Нашла и перевела: Ксения Мосеенкова


Комментарии (0)
Войдите или зарегистрируйтесь, чтобы оставить комментарий
Загрузка комментариев…