Руководства по промптам
Как написать промпт, который запрашивает структурированный вывод
Практические рекомендации по написанию промпта, который надёжно запрашивает JSON, таблицу или другой фиксированный формат, — дополнение к статье о том, что такое структурированный вывод AI, и о том, почему промпт сам по себе не гарантирует валидную структуру.
Все руководства по промптам · Дата последней проверки:
Опишите точную форму, а не только название формата
Сказать «верни это как JSON» — неплохое начало, но именно указание полей, их порядка и типов на самом деле убирает неоднозначность — «верни JSON-объект со строковым полем title и полем-массивом steps, где каждый шаг — строка» оставляет модели гораздо меньше простора для догадок, чем «верни JSON с title и steps». То же самое касается таблицы: назовите столбцы и то, что должно быть в каждом, а не рассчитывайте, что модель выберет ту же разбивку, что и вы.
Покажите один пример точного вывода, который вам нужен
Один пример готовой формы — короткий образец JSON-объекта или одна строка таблицы — часто убирает больше неоднозначности, чем ещё один абзац описания, по той же причине, по которой пример помогает в few-shot промптинге, ссылка ниже. Это особенно важно, когда у формата есть особенность, которую легко описать неточно, например, является ли поле необязательным или как должно обозначаться отсутствующее значение.
Чего здесь не гарантирует даже хорошо написанный промпт
Тщательно написанный промпт повышает вероятность валидного, хорошо оформленного вывода, но не гарантирует его — модель всё равно может вернуть некорректный JSON, лишнее поле или текст, обёрнутый вокруг запрошенной структуры, особенно в более длинном или сложном ответе. См. что такое структурированный вывод AI, ссылка ниже, о технических механизмах — таких как генерация с ограничением по схеме, — которые существуют именно потому, что промпт сам по себе не является надёжной гарантией, и о том, чем ClawAI отличается от простой вежливой просьбы в промпте.
Частые вопросы
- Достаточно ли вежливой просьбы в промпте, чтобы гарантировать валидный JSON?
- Нет — хорошо написанный промпт делает это более вероятным, но не гарантированным. См. что такое структурированный вывод AI, ссылка ниже, о механизмах, которые существуют именно потому, что промпт сам по себе не гарантирует валидную структуру надёжно.
- Стоит ли описывать формат или показывать пример?
- И то и другое, если в формате есть хоть какая-то неоднозначность, — точное описание полей плюс один пример готовой формы охватывает больше случаев, чем каждый способ по отдельности. См. few-shot промптинг, ссылка ниже, о том, как выбрать удачный пример.
- В чём разница между этим руководством и статьёй что такое структурированный вывод AI?
- Та статья объясняет технический механизм, обеспечивающий надёжный структурированный вывод; эта страница — практическое дополнение о том, как написать сам промпт. Их задумано читать вместе, а не как дублирующие друг друга материалы.
Потренируйтесь на реальном разговоре
Для вывода, который должен быть надёжно валидным, механизмы структурированного вывода ClawAI (см. что такое структурированный вывод AI, ссылка ниже) идут дальше одной лишь формулировки промпта — это руководство раскрывает половину картины, связанную с написанием промпта.