Это руководство — метод, а не список советов. Выполните семь шагов по порядку, и у вас получится промпт, который формулирует свою задачу, несёт нужный контекст, возвращает предсказуемый формат и проверен на реальных входных данных.
Сквозной пример — промпт, превращающий отзывы клиентов в отчёт о продукте.
Шаг 1. Запишите цель одним предложением
Начните с одного повелительного предложения, называющего результат. Если вы не можете его написать, задача ещё не определена.
Classify each piece of customer feedback by product area and sentiment.
Начинайте с глагола: классифицировать, резюмировать, извлечь, составить, сравнить, проверить. Промпт, который только описывает материал («вот наши данные отзывов»), заставляет модель гадать, что вы хотите с ним сделать.
Шаг 2. Добавьте контекст, которого не хватает модели
Перечислите то, что нужно знать способному новому коллеге: для кого предназначен вывод, какие у продукта области и что считается негативным.
The feedback comes from in-app surveys for a project management tool.
Product areas: Boards, Timeline, Reports, Integrations, Billing.
The report is read by product managers who decide what to fix next.
Включайте только тот контекст, который меняет ответ. Фон, не влияющий на вывод, стоит токенов и разбавляет инструкции.
Шаг 3. Сформулируйте требования и ограничения
Превратите ожидания в короткий список. Используйте числа там, где речь о размере, и скажите, что делать в неудобных случаях.
Requirements:
- Assign exactly one product area per item. Use "Other" if none fits.
- Sentiment is one of: positive, neutral, negative.
- Quote the phrase that justifies the sentiment, 12 words at most.
- If an item is not in English, classify it and add "language": "<code>".
Лучше говорить модели, что делать, чем чего избегать. «Используй простой язык» работает лучше, чем «не используй жаргон», потому что запрет называет то, что вы хотите убрать, и не предлагает альтернативы.
Шаг 4. Определите формат вывода
Если ответ будет читать код, укажите формат точно. Если человек — укажите структуру и длину.
Return a JSON array. Each element:
{"id": string, "area": string, "sentiment": string, "evidence": string}
Return only the JSON, with no commentary.
Отсутствие формата вывода — одна из самых частых причин нестабильных результатов. Схемы и проверка описаны в руководстве по промптам для структурированного вывода.
Шаг 5. Отделите инструкции от данных
Помещайте переменный ввод внутрь разделителей, чтобы модель не приняла его за инструкции. Это же блокирует простейшую форму инъекции в промпт.
<feedback>
{{feedback_items}}
</feedback>
Шаг 6. Добавьте примеры, если задача этого требует
Если правила легко сформулировать, обойдитесь без примеров. Если задача зависит от суждения, например что считать «neutral», покажите две-три пары «ввод — вывод», охватывающие пограничные случаи. Как их выбирать, см. в разделе о zero-shot, one-shot и few-shot промптинге.
Шаг 7. Проверяйте, измеряйте и пересматривайте
Запустите промпт на входных данных, отражающих реальное использование, включая неудобные: пустой ввод, очень длинный ввод, смесь языков и враждебный текст. Запишите, что не работает, измените одну вещь и запустите снова. Этот цикл описан в разделах об итеративной оптимизации промптов и оценке промптов.
Прежде чем тестировать на модели, устраните проблемы, для поиска которых модель не нужна. Анализатор промптов PromptFlowEngine проверяет отсутствие цели, расплывчатые формулировки, неколичественные размеры, противоречивые инструкции, отсутствие формата и переменные без разделителей.
Готовый промпт
You are a product analyst.
## Task
Classify each piece of customer feedback by product area and sentiment.
## Context
The feedback comes from in-app surveys for a project management tool.
Product areas: Boards, Timeline, Reports, Integrations, Billing.
The report is read by product managers who decide what to fix next.
## Requirements
- Assign exactly one product area per item. Use "Other" if none fits.
- Sentiment is one of: positive, neutral, negative.
- Quote the phrase that justifies the sentiment, 12 words at most.
## Output format
Return a JSON array. Each element:
{"id": string, "area": string, "sentiment": string, "evidence": string}
Return only the JSON.
## Input
<feedback>
{{feedback_items}}
</feedback>
Контрольный список, который стоит сохранить
| Вопрос | Если ответ «нет» |
|---|---|
| Говорит ли первая строка, что делать? | Добавьте цель. |
| Хватило бы контекста новому коллеге? | Добавьте аудиторию, область и определения. |
| Размеры заданы числами? | Замените «короткий» и «несколько». |
| Указан ли формат вывода? | Добавьте формат и длину. |
| Отделён ли ввод от инструкций? | Оберните переменные в теги. |
| Запускался ли он на сложных входных данных? | Соберите небольшой тестовый набор. |
Готовые отправные точки, которые уже проходят эти проверки, см. в шаблонах промптов. О привычках, стоящих за этими шагами, читайте дальше в разделе лучшие практики промпт-инжиниринга.