Image

Как писать промты для генерации кода: примеры для Python, JS и SQL

Доброго времени суток, «Хабр»!

За свою долгую (нет) карьеру писателя статей я уделил внимание достаточно важной теме, причем рассмотрел ее сразу в двух аспектах: написание промтов для текстовых и графических нейронных сетей. В какой-то момент появилась мысль углубиться в одну из этих тем.

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

Примите стратегически удобное положение, а я приступаю к рассказу.

f36bef0cc0d782dae7762c6d877da195

Небольшое дополнение

Перед переходом упомяну некоторые детали. Начну с того, что для генерации будет использоваться GPT-5, показавшая довольно неплохие результаты в области программирования. Кстати, доступ к модели удалось получить через агрегатор нейросетей BotHub, где представлено большое количество различных моделей — от текстовых до способных генерировать видео и звук. Зарегистрировавшись по специальной ссылке, вы получите 100 000 капсов для личных экспериментов.

Далее, пожалуй, стоит уточнить конечную цель статьи. Помимо простого объяснения структуры промта, считаю полезным привести наглядный пример. Пусть это будет знакомая многим компьютерная игра «Арканоид», которую ранее я уже реализовывал на языке Си в качестве курсовой работы университета.

Промт 

Промт — ключ к пониманию нейросетью поставленной перед ней задачи. Чем детальнее и четче сформулирован наш запрос, тем точнее и эффективнее окажется итоговый результат. Кодовые промты создаются специально для написания программного кода на языках типа Python, Java, C++ и др., тогда как прямые запросы сосредоточены непосредственно на результате.

Как писать промт для генерации кода?

Построение эффективного запроса в некотором роде является искусством, однако достичь чего-то идеального очень непросто.

При написании промта важно учитывать: конкретность, контекст, четкость формулировок, ограничения.

  • Конкретность предполагает четко сформулированную задачу.

  • Контекст дает важные детали, например версию языка программирования или операционную систему.

  • Четкость формулировки требует простых и понятных выражений, чтобы структура промта оставалась ясной.

  • Ограничения помогают задать направление генерации, указывая библиотеку или технологию, которая должна присутствовать в итоговом коде.

Разумеется, эти советы полезны не только для составления промтов, но и ТЗ. Теперь перейдем непосредственно к созданию самого шаблона промта.

Назначение роли

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

Тебе нужно принять роль [язык программирования] программиста. Твоя главная цель — написать оптимальный и надежный код, по моему ТЗ, и объяснить логику его работы.

Возможности и ОС

Для выполнения поставленной задачи ты можешь: уточнять детали, предлагать несколько вариантов решения, составлять оптимально рабочий код на [название языка программирования] (указать версию).

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

Далее следует указать целевую операционную систему проекта. По сути, тоже необязательный элемент запроса, но обеспечивающий дополнительную детализацию.

Целевая ОС: Linux/Windows

Требования

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

Требования: пиши по частям, в первой части изложи краткий план и технологии, обоснуй свой выбор.

ТЗ

Техническое задание — основная составляющая промта, в которой мы описываем все требования к результату: что должно быть в программе, как она должна работать.

Техническое задание: [ТЗ]

К составлению задания нужно подходить серьезно. Просто представьте, что у вас есть сотрудник, от которого вы хотите получить ожидаемый результат. Как этого добиться? Подробно расписать все, что должно быть в конечном продукте.

Шаблон промта

Тебе нужно принять роль [язык программирования] программиста. Твоя главная цель — написать оптимальный и надежный код, по моему ТЗ, и объяснить логику его работы.

Для выполнения поставленного задания ты можешь: задавать уточняющие вопросы, предлагать разные варианты решения; создавать оптимальный код на [язык программирования] (версия).

Требования: пиши по частям, в первой части изложи краткий план и технологии, обоснуй свой выбор.

Техническое задание: [ТЗ]

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

При выполнении простых задач и операций сам промт можно значительно сократить.

Тебе нужно принять роль [язык программирования] программиста. Твоя главная цель — написать оптимальный и надежный код, по моему ТЗ. Техническое задание: [ТЗ]

Буквально просто задал запрос — получил ответ без каких-либо углубленных данных. Здесь вы не указываете версию, не выставляете требований и так далее, оставляя все вопросы самой нейросети и ее выбору.

Тесты промта

Да, я не забыл, что в названии и в дополнении упоминалось про примеры на конкретных языках: Python, JavaScript, SQL.

Начнем с Python, задача которого повторить компьютерную игру «Арканоид». Промт:

Тебе нужно принять роль Python программиста. Твоя главная цель — написать оптимальный и надежный код, по моему ТЗ, и объяснить логику его работы.

Для выполнения поставленного задания ты можешь: задавать уточняющие вопросы, предлагать разные варианты решения; создавать оптимальный код на Python (3.11).

Требования: пиши по частям, в первой части изложи краткий план и технологии, обоснуй свой выбор.

Техническое задание: Разработать компьютерную игру «Арканоид» с графическим пользовательским интерфейсом (GUI), содержащую стартовое меню с возможностью начала игры и выхода, а также три различных уровня, отличающихся геометрией расположения блоков и их цветовой схемой; игровой процесс должен предоставлять игроку три жизни, при потере которых игра автоматически перезапускается, возвращая пользователя в стартовое меню.

fb8367d025b113379c4732ccc8f66825

Можно заметить, что ChatGPT воспринял инструкции сразу целиком. Он предложил свою версию реализации с базовым набором требований, отметив необходимость уточнения некоторых моментов, а после написания самого кода указал несколько возможных улучшений игры. Промт сработал вполне эффективно.

Что касается результата, здесь ситуация чуть похуже. Модель столкнулась именно с той проблемой, которая загоняла меня в тупик еще тогда, когда я писал курсовую работу на языке Си. Речь идет о траектории движения мяча. Изначально мяч периодически застревал в каретке, вызывая прекращение игры и выдачу ошибки. После устранения этой проблемы удалось получить рабочую версию игры, хотя движение мяча все равно выглядело немного странно (в своей курсовой работе уравнения для траектории мяча я подбирал вручную примерно месяц).

489d15c9c72d7ab869233fb87a065560
48694c36bac6cb68f5d34d1fb17bf2be

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

Рассмотрим аналогичную задачу на JavaScript:

965d0ad330f8c1aab4d679a987f56ec0

В этом случае ответ соответствует поставленным условиям. Сначала модель выдала первую часть с уточняющими вопросами, после полноценный код, который даже не поместился здесь полностью… Зато присутствует инструкция, как собрать все файлы воедино.

bf42503d1744a4d6e0bcab2f6b4627e2
4ad4284d27d8facf598907be049f9dcf

Что касается самого геймплея, много сказать не смогу, все же в своей основе это дубликат полученного решения на Python. Хотя мяч снова отказывается лететь адекватно, здесь он отскакивает исключительно вправо… Похоже, добиться корректной физики движения мяча из моделей мне пока не удается. Заметил, что все файлы разложены в нужные папки, да и сама структура проекта указана для полноценного понимания.

С SQL, конечно, ситуация любопытна. Моя первоначальная идея дала сбой. Все-таки SQL — это язык работы с базами данных, поэтому создать подобную игру средствами SQL выглядит задачей из ряда вон выходящей. Но довольно скоро возникла мысль запросить базу данных для компании, якобы выпускающей эту игру.

0531d66c8b328812dcdfe1c6b663ce27

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

78ebc4907da4796cb5fbf4a31dc6c507
41fadc8764aa9c2ddd5e8728fb8434ac
475596b38946811c2e29c59666e57ed3

Итог

Под конец статьи хочется сказать, что инструкция по написанию промта для генерации кода — следование шаблону с небольшой инструкцией для простых текстовых нейросетей. Главное здесь, пожалуй, все еще техническое задание, а все остальное является лишь дополнением для более корректного выполнения поставленной задачи.

Спасибо за внимание!

Источник: habr.com

✅ Найденные теги: Как, новости

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Фото сгенерированных лиц: исследование показывает, что люди не могут отличить настоящие лица от сгенерированных
Нейросети построили капитализм за трое суток: 100 агентов Claude заперли…
Скетч: цифровой осьминог и виртуальный мир внутри компьютера с человечком.
Сцена с жестами пальцами, где один жест символизирует "VPN", а другой "KHP".
‼️Paramount купила Warner Bros. Discovery — сумма сделки составила безумные…
Скриншот репозитория GitHub "Claude Scientific Skills" AI для научных исследований.
Структура эффективного запроса Claude с элементами задачи, контекста и референса.
Эскиз и готовая веб-страница платформы для AI-дизайна в современном темном режиме.
ideipro logotyp
Image Not Found
Звёздное небо с галактиками и туманностями, космос, Вселенная, астрофотография.

Система оповещения обсерватории Рубина отправила 800 000 сигналов в первую ночь наблюдений.

Астрономы будут получать оповещения о небесных явлениях в течение нескольких минут после их обнаружения. Теренс О'Брайен, редактор раздела «Выходные». Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной…

Мар 2, 2026
Женщина с длинными тёмными волосами в синем свете, нейтральный фон.

Расследование в отношении 61-фунтовой машины, которая «пожирает» пластик и выплевывает кирпичи.

Обзор компактного пресса для мягкого пластика Clear Drop — и что будет дальше. Шон Холлистер, старший редактор Публикации этого автора будут добавляться в вашу ежедневную рассылку по электронной почте и в ленту новостей на главной странице вашего…

Мар 2, 2026
Черный углеродное волокно с текстурой плетения, отражающий свет.

Материал будущего: как работает «бессмертный» композит

Учёные из Университета штата Северная Каролина представили композит нового поколения, способный самостоятельно восстанавливаться после серьёзных повреждений.  Речь идёт о модифицированном армированном волокном полимере (FRP), который не просто сохраняет прочность при малом весе, но и способен «залечивать» внутренние…

Мар 2, 2026
Круглый экран с изображением замка и горы, рядом электронная плата.

Круглый дисплей Waveshare для креативных проектов

Круглый 7-дюймовый сенсорный дисплей от Waveshare создан для разработчиков и дизайнеров, которым нужен нестандартный экран.  Это IPS-панель с разрешением 1 080×1 080 пикселей, поддержкой 10-точечного ёмкостного сенсора, оптической склейкой и защитным закалённым стеклом, выполненная в круглом форм-факторе.…

Мар 2, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых