Первый промпт: базовые принципы

Первый промпт: базовые принципы

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

Принцип 1: Дай модели роль

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

Без роли (вход):

Объясни, почему код не работает.

Выход: модель может дать общее объяснение про ошибки в коде — слишком размыто.

С ролью (вход):

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

Объясни, почему этот код не работает:
numbers = [1, 2, 3, 4, 5]
for i in range(len(numbers)):
    if numbers[i] % 2 == 0:
        numbers.remove(numbers[i])
print(numbers)

Выход:

Что не так: удаление элементов из списка во время итерации по
индексам — range(len(numbers)) вычисляется один раз до начала
цикла и не обновляется при изменении размера списка. После удаления
элемента индексы съезжают, и цикл пропускает некоторые элементы.

Почему это проблема: после удаления 2 (индекс 1), список становится
[1, 3, 4, 5]. Следующая итерация — i=2, что теперь указывает на 4.
Элемент 3 пропущен. Результат непредсказуем.

Как исправить (решение 1):
numbers = [n for n in numbers if n % 2 != 0]

Как исправить (решение 2):
for n in numbers[:]:  # итерация по копии
    if n % 2 == 0:
        numbers.remove(n)

Роль сработала: модель ответила как senior-разработчик — с анализом, объяснением причины и вариантами исправления.

Принцип 2: Опиши желаемый результат

Модель не знает, что у тебя в голове. Всё, что ты не сказал явно, модель достраивает сама — и часто не так, как ты ожидал. Поэтому опиши результат максимально конкретно.

Размытый промпт:

Напиши текст для рассылки о нашей новой функции.

Конкретный промпт:

Напиши email-рассылку для пользователей нашего сервиса, в которой
мы анонсируем новую функцию «умный поиск по документам». Письмо
должно:

- Начинаться с персонализированного приветствия (используй
  переменную {{first_name}}).
- Объяснять, какую проблему решает функция (долгий поиск информации).
- Содержать конкретный пример использования: как загрузить документ
  и задать вопрос.
- Завершаться кнопкой «Попробовать» и ссылкой на инструкцию.
- Быть на 200–250 слов.
- Тон: дружелюбный и энергичный, но без маркетинговых штампов.

Теперь модель знает: формат (email), структуру (приветствие → проблема → пример → призыв), объём (200–250 слов), тон (дружелюбный без штампов).

Принцип 3: Укажи формат ответа

Если тебе нужен не просто текст, а структурированный ответ — скажи об этом явно.

Без указания формата:

Сравни SQL и NoSQL базы данных.

Модель выдаст несколько абзацев сплошного текста — неудобно для быстрого чтения.

С указанием формата:

Сравни SQL и NoSQL базы данных. Ответ оформи в виде таблицы
из 5 строк: тип данных, схема, масштабирование, примеры СУБД,
когда использовать. В каждой строке — описание в одном предложении.

Выход:

| Характеристика     | SQL                          | NoSQL                      |
|--------------------|------------------------------|----------------------------|
| Тип данных         | Структурированные, таблицы   | Документы, ключ-значение, графы |
| Схема              | Жёсткая, задаётся заранее    | Гибкая, может меняться     |
| Масштабирование    | Вертикальное                 | Горизонтальное             |
| Примеры СУБД       | PostgreSQL, MySQL, SQLite   | MongoDB, Redis, Cassandra  |
| Когда использовать | Сложные связи, транзакции    | Большие объёмы, гибкая структура |

Принцип 4: Ограничь то, чего не нужно

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

Без ограничений:

Объясни, что такое рекурсия.

Модель может дать определение, пример, историю термина, сравнение с итерацией, предостережения о стеке — много текста, не всё нужно.

С ограничениями:

Объясни, что такое рекурсия. Требования:
- Только определение и ОДИН простой пример на Python.
- Не сравнивай с итерацией.
- Не углубляйся в теорию стека вызовов.
- Не пиши про плюсы и минусы.
- Уложись в 4–5 предложений.

Выход:

Рекурсия — это приём в программировании, при котором функция
вызывает саму себя для решения подзадачи. Каждый рекурсивный вызов
работает с уменьшенной версией исходной задачи, пока не достигнет
базового случая — условия, при котором функция возвращает результат
без нового вызова. Например, вычисление факториала: factorial(5)
вызывает factorial(4), та — factorial(3), и так до factorial(1),
который возвращает 1.

Собираем всё вместе

Итоговый шаблон хорошего промпта:

[Роль] Ты — [кто]. Твоя задача — [что делаешь].

[Контекст] Ситуация: [описание].

[Задание] Сделай [что]. Результат должен [требования к результату].

[Формат] Ответ оформи как [структура].

[Ограничения] Не включай [что не нужно]. Уложись в [объём].

Конкретный пример по шаблону:

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

Я пишу документацию к REST API нашего сервиса. Мне нужно описать
эндпоинт POST /api/upload, который принимает файл и возвращает
JSON с полями file_id, file_url и file_size.

Напиши описание этого эндпоинта в формате Markdown. Включи:
заголовок, краткое описание, таблицу параметров запроса, пример
запроса (curl), пример успешного ответа (JSON), пример ошибки (JSON).

Не пиши про аутентификацию и rate limiting — это описано в другом
разделе.

Проверь себя

Чего не хватает в этом промпте?

Напиши статью про Python.

Ответ: не хватает всего — роли, конкретной темы, формата, объёма, аудитории. Модель напишет случайную статью на случайную тему про Python, и результат почти наверняка не совпадёт с твоими ожиданиями.

Итог

  • Роль — сужает пространство ответов модели до релевантных твоей задаче.
  • Конкретное описание результата — модель не умеет читать мысли, всё важное должно быть в промпте.
  • Формат ответа — если нужна таблица, список или JSON, скажи об этом прямо.
  • Ограничения — явно укажи, чего модель не должна делать.
  • Шаблон «Роль → Контекст → Задание → Формат → Ограничения» — универсальная основа для любого промпта.

Что дальше

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

Попробуйте интерактивную версию

Практические задачи, квизы и AI-наставник — бесплатный старт без карты

Перейти к практике