Мастер промпт инжиниринга для текста и медиа
Продвинутая структура текстовых запросов
От простых вопросов к сложным инструкциям
Когда вы только начинаете работать с языковыми моделями, общение похоже на диалог: вы задаете вопрос — получаете ответ. Но чтобы решать по-настоящему сложные задачи, нужно перейти от простых вопросов к созданию структурированных инструкций, или промптов. Качественный промпт — это не просто вопрос, а подробное техническое задание для модели.
Ключевая идея — разделить ваш запрос на логические блоки. Модель должна четко понимать, где ее роль, где инструкции, а где данные для обработки. Это снижает вероятность ошибок и «галлюцинаций», делая ответы предсказуемыми и полезными.
Системные и пользовательские инструкции
Представьте, что вы нанимаете ассистента. Сначала вы даете ему общую должностную инструкцию: кто он, какими правилами руководствуется, в каком стиле общается. А затем ставите конкретные задачи на день. В проектировании промптов это разделение реализуется через системные и пользовательские сообщения.
Системная инструкция (System Prompt) задает фундаментальное поведение, роль и ограничения для модели на всю сессию. Пользовательская инструкция (User Prompt) — это ваш конкретный запрос в рамках заданной системы.
Многие платформы, включая API от OpenAI и Anthropic, позволяют явно разделять эти два типа инструкций. Системное сообщение обрабатывается с особым вниманием и задает тон всему дальнейшему диалогу. Это самый надежный способ «настроить» модель под себя.
## Пример: Редактор кода
# Системная инструкция
Ты — опытный Python-разработчик, который пишет чистый, эффективный код по стандарту PEP 8. Ты не пишешь комментарии к очевидным вещам, но объясняешь сложные алгоритмы. Твои ответы всегда содержат только код, без лишних фраз вроде «Конечно, вот код».
# Пользовательская инструкция
Напиши функцию, которая принимает на вход список целых чисел и возвращает новый список, содержащий только уникальные значения в исходном порядке.
В этом примере системная инструкция определяет роль (Python-разработчик), стиль (PEP 8, минимум комментариев) и формат ответа (только код). Пользовательское сообщение — это уже конкретная задача. Модель будет решать ее, строго следуя заданным правилам.
Разделители для ясности
Что если вам нужно передать модели статью для анализа и попросить ее найти ключевые тезисы? Модель может запутаться, где заканчиваются ваши инструкции и начинается сама статья. Чтобы этого избежать, используют разделители.
Разделители — это специальные символы или теги, которые обрамляют разные части вашего промпта, создавая четкую структуру. Наиболее распространенные варианты:
- Тройные кавычки:
"""текст для анализа""" - Тройные обратные кавычки:
```текст для анализа``` - XML-теги:
<text_to_analyze>текст для анализа</text_to_analyze>
Модели от Anthropic (Claude) особенно хорошо обучены на распознавание XML-тегов, что делает их предпочтительным выбором при работе с этими моделями. Они позволяют создавать вложенные и сложные структуры, похожие на HTML-разметку.
## Пример с XML-тегами
<system_prompt>
Ты — литературный критик. Твоя задача — проанализировать предоставленный отрывок текста и кратко изложить его основную идею. Твой ответ должен быть в формате JSON.
</system_prompt>
<instructions>
1. Внимательно прочти текст в тегах <text>.
2. Определи главную мысль автора.
3. Сформулируй ее в одном-двух предложениях.
4. Создай JSON-объект с ключами "main_idea" и "keywords", где keywords — это список из 3-5 ключевых слов.
</instructions>
<text>
Здесь находится длинный отрывок из анализируемой статьи о влиянии технологий на современное общество...
</text>
Такая структура не оставляет модели простора для домыслов. Она точно знает, что анализировать, каким инструкциям следовать и где находится ее «личность».
Проектирование роли и формата
Задание роли, или «персоны», — один из самых мощных приемов. Когда вы говорите модели «Ты — эксперт по кибербезопасности», она автоматически активирует знания из этой области, использует соответствующую терминологию и подходит к задаче с нужной точки зрения.
Не менее важен и формат вывода. Если вам нужны данные для дальнейшей обработки в программе, просите их в виде JSON. Если готовите отчет — в виде таблицы Markdown. Чем точнее вы опишете желаемый результат, тем меньше правок потребуется.
Просто попросить «сделай JSON» недостаточно. Лучше предоставить пример структуры:
{"user_id": ..., "feedback_summary": ..., "sentiment": "positive|negative|neutral"}. Это называется 'few-shot prompting' — обучение на нескольких примерах.
Для контроля стиля и длины используйте четкие ограничения. Вместо «напиши коротко» используйте «напиши ответ не более чем в 50 словах» или «составь список из 3-х пунктов». Жесткие рамки направляют модель и помогают избежать «воды».
Грамотное проектирование промптов — это навык, который превращает языковую модель из интересной игрушки в мощный рабочий инструмент. Экспериментируйте со структурой, ролями и форматами, чтобы добиться от ИИ именно тех результатов, которые вам нужны.