Урок 02 из 6 · 2 минуты чтения

Промпты и структурированный вывод

Как написать промпт, который стабильно работает, отделить инструкции от данных, получить от модели строгий JSON и когда разбивать задачу на цепочку вызовов.

Хороший промпт — это постановка задачи

Модель не читает мысли. Хороший промпт содержит то же, что хорошая задача для нового сотрудника: роль и контекст, конкретную задачу, ограничения, формат ответа и что делать, если данных не хватает («если ответа нет в документе — так и скажи»). Без последнего пункта модель охотно додумает.

Системный промпт задаёт правила на весь диалог, пользовательский — конкретный запрос.

Отделяйте инструкции от данных

Документ, письмо или ввод пользователя оборачивают в явные границы — теги вроде <document>…</document>. Так модель понимает, где инструкция, а где материал для обработки. Это повышает качество и немного снижает риск, что фраза из письма будет выполнена как команда.

Few-shot — несколько примеров «вход → выход» в промпте. Они показывают формат лучше любого описания. Примеры должны быть разнообразными и похожими на реальные входы, иначе модель начнёт копировать их содержание. Обычно хватает 2–5.

Строгий формат: JSON по схеме

Если результат читает программа, нужен структурированный вывод. Удобный путь в Python — описать результат классом Pydantic с типами, перечислениями и необязательными полями, передать его JSON-схему в API в режиме структурированного вывода и проверить ответ тем же классом. При ошибке валидации — повторить запрос с текстом ошибки.

Схема гарантирует форму, но не правильность значений: сумму или дату всё равно проверяют бизнес-правилами.

Один промпт или цепочка

Когда один промпт пытается делать много разного — классифицировать, извлекать, отвечать, проверять, — он начинает путаться. Тогда задачу разбивают на цепочку вызовов: каждый решает одну подзадачу и передаёт структурированный результат следующему, а между шагами код проверяет данные. Цена — больше вызовов и задержка, поэтому решение принимают сравнением на наборе примеров.

Промпт — это код

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

Итог

  • Роль, задача, ограничения, формат и поведение без данных.
  • Явные границы для данных, несколько разнообразных примеров.
  • JSON по схеме и обязательная валидация.
  • Цепочка вызовов для сложных задач — по замеру.

Проверка урока

Войдите, чтобы проверить себя: сданные проверки всех уроков курса отмечают его темы пройденными на карте и в ИПР.

Вопросы по теме

Читайте также

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования