Модульные разделы запроса
Чётко разделяйте контекст, инструкции, ограничения и формат вывода
«Модульные разделы запроса» — бесплатный урок AI Prompt Engineering на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AI Prompt Engineering, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AI Prompt Engineering содержит 4 уроков всего.
Проблема монолитных промптов
Монолитный промпт помещает всё в один абзац: справочную информацию, задачу, правила, примеры и формат результата, смешивая их. По мере усложнения промптов монолитная структура приводит к следующему:
- Модели применяют правила не к тем разделам
- Сложно определить, какая часть вызвала плохой результат
- Строки промптов, которые невозможно поддерживать
- Непоследовательное поведение в разных версиях модели
Модульные промпты решают все эти проблемы.
Пять основных разделов промпта
Хорошо структурированный промпт состоит из пяти отдельных разделов, каждый из которых имеет чёткое назначение:
- Контекст — справочная информация, необходимая модели для понимания ситуации
- Задача — что именно должна сделать модель, сформулированное ясно
- Ограничения — правила и пределы, которым должен соответствовать ответ
- Формат результата — структура, объём и схема ожидаемого ответа
- Примеры — демонстрации правильного поведения
Не каждому промпту нужны все пять. Используйте только необходимые разделы.
Раздел контекста
Раздел контекста содержит справочную информацию и не указывает модели, что делать. Хороший контекст включает:
- Кто конечный пользователь
- Для какой платформы или продукта это предназначено
- Релевантные знания предметной области
- Предыдущее состояние, о котором модели следует знать
context_section = '''
<context>
You are assisting a customer support agent at a B2B SaaS company.
The company sells project management software used by engineering teams.
Customers are typically CTOs, engineering managers, or senior developers.
The support agent is handling a live chat conversation with a customer.
</context>
'''
print(context_section)Раздел задачи
Раздел задачи точно указывает, что должна создать модель. Он должен быть конкретным, ориентированным на действие и не содержать лишней справочной информации.
task_section = '''
<task>
Draft a response to the customer message below.
The response should:
1. Acknowledge the customer's issue
2. Provide a concrete next step
3. Set a realistic expectation for resolution time
</task>
<customer_message>
Our Gantt chart view stopped loading after the last update.
This is blocking our sprint planning session today.
</customer_message>
'''
print(task_section)Раздел ограничений
Ограничения задают рамки — какие действия модель must NOT выполнять и какие явные пределы обязана соблюдать.
constraints_section = '''
<constraints>
- Do not promise a fix by a specific date unless you are certain.
- Do not mention competitor products by name.
- Keep the response under 100 words.
- Use a professional but empathetic tone.
- Do not ask the customer for information already provided in their message.
</constraints>
'''
print(constraints_section)Раздел формата результата
Раздел формата результата точно сообщает модели, как структурировать ответ: схема JSON, заголовки Markdown, обычный текст, нумерованные списки и т. д.
output_format_section = '''
<output_format>
Respond with a JSON object containing:
{
"subject": "string (email subject line)",
"body": "string (email body, plain text, under 150 words)",
"priority": "high | medium | low",
"escalate": true | false
}
Do not include any text outside the JSON object.
</output_format>
'''
print(output_format_section)Раздел примеров
Примеры показывают модели правильную пару входных и выходных данных. Размещайте примеры после ограничений, чтобы модель сначала увидела правила, а затем демонстрацию.
examples_section = '''
<examples>
<example>
<input>Customer: My invoices are not downloading.</input>
<output>{
"subject": "Invoice Download Issue",
"body": "Thank you for reaching out. We see the issue with invoice downloads and our team is investigating. We expect a fix within 2 hours. We will email you once resolved.",
"priority": "high",
"escalate": true
}</output>
</example>
</examples>
'''
print(examples_section)Сборка модульного промпта
Модульный подход упрощает сборку и редактирование. Каждый раздел можно изменять независимо.
def build_support_prompt(customer_message):
context = '<context>B2B SaaS customer support for project management software.</context>'
task = f'<task>Draft a JSON response to this customer message.</task>\n<customer_message>{customer_message}</customer_message>'
constraints = '<constraints>Under 100 words. Professional tone. No competitor names.</constraints>'
output_fmt = '<output_format>Return JSON: {"subject": str, "body": str, "priority": str, "escalate": bool}</output_format>'
return '\n\n'.join([context, task, constraints, output_fmt])
message = 'The Gantt chart stopped loading after your last update.'
print(build_support_prompt(message))Преимущества при отладке
Когда модульный промпт даёт плохой результат, можно изолировать проблемный раздел:
- Выполнена не та задача? — Проверьте раздел «Задача»
- Нарушено правило? — Проверьте раздел «Ограничения»
- Неверная структура результата? — Проверьте раздел «Формат результата»
- Низкое качество? — Проверьте раздел «Примеры» или добавьте контекст
Можно менять по одному разделу и повторно тестировать, не переписывая весь промпт.
Преимущества для поддержки
Модульные промпты, хранящиеся в виде структурированных объектов или функций, гораздо проще поддерживать, чем длинные строковые литералы:
- Обновляйте контекст при изменении продукта, не затрагивая логику задачи
- Меняйте формат результата с JSON на Markdown, не изменяя ограничения
- Тестируйте разные наборы примеров в формате A/B, сохраняя всё остальное неизменным
- Осуществляйте независимое управление версиями отдельных разделов
class Prompt:
def __init__(self):
self.context = ''
self.task = ''
self.constraints = []
self.output_format = ''
self.examples = []
def build(self):
parts = []
if self.context:
parts.append(f'<context>\n{self.context}\n</context>')
if self.task:
parts.append(f'<task>\n{self.task}\n</task>')
if self.constraints:
c = '\n'.join(f'- {r}' for r in self.constraints)
parts.append(f'<constraints>\n{c}\n</constraints>')
if self.output_format:
parts.append(f'<output_format>\n{self.output_format}\n</output_format>')
return '\n\n'.join(parts)Когда пропускать разделы
Не каждому промпту нужны все пять разделов. Руководствуйтесь следующими правилами:
- Пропускайте контекст, если задача понятна сама по себе (например, переведите это предложение)
- Пропускайте ограничения для простых задач извлечения данных без особых случаев
- Пропускайте примеры, если задача проста или модель уже хорошо справляется с ней без обучения на примерах
- Всегда включайте задачу и формат результата — это минимально необходимые разделы
Избыточная детализация простых промптов добавляет шум без пользы.
Быстрая проверка
Модульный промпт создаёт неправильную структуру результата. Какой раздел следует проверить первым?
Модульные разделы — основные выводы
Модульные разделы промпта — основа разработки промптов, которые легко поддерживать и отлаживать:
- Пять основных разделов: контекст, задача, ограничения, формат результата и примеры
- У каждого раздела одна обязанность — их смешивание создаёт путаницу
- Модульная структура позволяет отлаживать разделы по отдельности и проводить A/B-тестирование
- Храните промпты как структурированные объекты или функции, а не как необработанные строки
- Пропускайте ненужные разделы — избыточная детализация добавляет шум
- Всегда включайте как минимум задачу и формат результата в каждый нетривиальный промпт
Изучай AI Prompt Engineering с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 53
- Уроки
- 199
Часто задаваемые вопросы
Урок «Модульные разделы запроса» бесплатный?
Да — полный текст урока «Модульные разделы запроса» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AI Prompt Engineering, подпишись на CoddyKit PRO. Курс AI Prompt Engineering содержит 4 уроков всего.
Чему я научусь в уроке «Модульные разделы запроса»?
Чётко разделяйте контекст, инструкции, ограничения и формат вывода Ты практикуешь AI Prompt Engineering с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AI Prompt Engineering?
Предыдущий опыт не требуется. AI Prompt Engineering на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Модульные разделы запроса»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AI Prompt Engineering?
Да. Каждый урок AI Prompt Engineering включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Использование XML-тегов в качестве разделителей
- Модульные разделы запроса
- Шаблон запроса «заголовок — основная часть — подвал»
- Лучшие практики организации запросов