Промпт для кода: главное правило — контекст

Качество сгенерированного кода на 80% определяется тем, что модель знает о вашем проекте. Промпт «напиши функцию сортировки заказов» даст код в вакууме: не те названия, не тот стиль, чужие библиотеки. Рабочий промпт всегда содержит четыре вещи: язык и версии («Python 3.11, FastAPI»), окружение (какие библиотеки уже используются), фрагмент существующего кода (сигнатуры соседних функций, модель данных) и ограничения («без новых зависимостей», «в стиле существующего кода»).

Практичный шаблон подачи контекста:

Проект: [язык, фреймворк, версии].
Вот существующий код, к которому нужно дописать решение:
[вставить релевантные функции/классы/модели]
Задача: [что сделать].
Ограничения: не менять существующие сигнатуры,
новые зависимости не добавлять.

Чем точнее вырезан релевантный контекст, тем лучше результат: вставлять весь файл на тысячу строк хуже, чем 40 строк, которые реально касаются задачи.

Инкременты вместо «напиши всё сразу»

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

  1. Скелет: «спроектируй структуру: классы, функции, сигнатуры — без реализации. Объясни решения».
  2. Проверка плана: вы читаете скелет и правите архитектуру, пока это дёшево.
  3. Реализация по одному блоку: «теперь реализуй функцию X по согласованной сигнатуре».
  4. Связка: «собери блоки, покажи точку входа и пример вызова».

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

Тесты, рефакторинг, ревью: три готовых промпта

ЗадачаПромптНа что смотреть в ответе
Тесты«Напиши pytest-тесты к этой функции: happy path, граничные случаи, ошибки входных данных. Каждый тест — с комментарием, что проверяет»покрыты ли пустые значения, нули, дубли
Рефакторинг«Отрефактори без изменения поведения: убери дублирование, упрости ветвления. Списком перечисли каждое изменение и риск»список изменений — по нему проверяется каждый пункт
Ревью«Сделай ревью этого диффа как строгий сеньор: баги, крайние случаи, безопасность, читаемость. Формат: строка — проблема — почему — как исправить»конкретика строк, а не общие советы

Отдельный сильный приём — «тесты до кода»: сначала просите модель написать тесты по описанию поведения, проверяете, что тесты отражают задачу, и только потом просите реализацию, которая их проходит. Это дисциплинирует и вас, и модель.

Какие модели выбрать для кода

Для сложных задач — проектирование, разбор чужого кода, хитрые баги — берите флагманы: Claude Opus 4.7 с контекстом в миллион токенов уверенно держит большие куски проекта в одном диалоге, GPT-5.5 и DeepSeek V4 Pro тоже показывают сильные результаты. Рутину — докстринги, простые функции, разовые скрипты — дешевле гонять на GPT-5 Mini или DeepSeek V4 Flash. Разборы реальных сценариев с промптами собраны в подборке промптов Claude для работы с кодом.

Начать можно в чате на странице написания кода: вставьте шаблон контекста из первого раздела — разница с «голым» запросом видна с первого ответа. Новичку «ГПТ Россия» начисляет 50 ₽ на старт, оплата за фактическое использование, российские карты, VPN не нужен.

Частые вопросы

Почему модель выдаёт код с несуществующими функциями библиотек?

Это следствие пробелов контекста: модель «дорисовывает» API по аналогии. Лечится тремя способами: указывайте точные версии библиотек, вставляйте фрагмент реальной документации или сигнатуры в промпт и добавляйте инструкцию «если не уверен в существовании метода — скажи об этом, а не придумывай».

Насколько большой кусок кода можно вставить в промпт?

Флагманы с контекстом порядка миллиона токенов принимают десятки тысяч строк. Но правило «релевантный минимум» никто не отменял: точечная выборка из нужных модулей почти всегда даёт более точный ответ, чем свалка из всего репозитория.

Можно ли доверять сгенерированным тестам?

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