⚙️ JSON 101 для проектирования промптов: Object vs Array
Сегодня мы отточим самый важный навык в структурированном промптинге (structured prompting): Когда использовать объекты (objects) JSON и когда — массивы (arrays).
Овладение этим навыком определяет, выдаст ли ваша LLM (Large Language Model, большая языковая модель) предсказуемые данные или хаотичный беспорядок!
🤔 Что такое JSON и зачем его использовать?
📝 JSON (JavaScript Object Notation — нотация объектов JavaScript) — это облегченный, читаемый человеком формат данных, используемый для передачи данных между сервером и веб-приложением, или, в нашем случае, между вами и LLM.
Мы используем его в проектировании промптов, потому что он вынуждает большие языковые модели выдавать структурированный, предсказуемый результат. Предоставляя ИИ строгий, машиночитаемый формат как руководство для выполнения последовательных действий, мы устраняем неоднозначность и делаем вывод непосредственно парсируемым (parsable — обрабатываемым) другим программным обеспечением (M2M - Machine-to-Machine interaction).
📐 Золотое правило: Важен ли порядок?
Ваш выбор структуры полностью зависит от одного вопроса: Является ли последовательность или порядок информации критически важным?
1. Объект JSON: Чек-лист ✅
Синтаксис: Фигурные скобки
{}.Назначение: Неупорядоченный набор ИМЕНОВАННЫХ свойств (NAMED properties).
Аналогия: Конфигурационный файл. ИИ нужны все факты, но неважно, прочитает ли он описание роли до описания цели.
Используется для: Определения персоны (
"role"), метаданных или списка правил валидации ИИ.
// НЕУПОРЯДОЧЕННАЯ КОНФИГУРАЦИЯ
"prompt": {
"role": "...",
"goal": "..."
}2. Массив JSON: Сценарий 🎬
Синтаксис: Квадратные скобки
[].Назначение: Упорядоченная ПОСЛЕДОВАТЕЛЬНОСТЬ элементов. Позиция — это всё!
Аналогия: Сценарий или рецепт. Шаг 1 должен произойти перед Шагом 2.
Используется для: Определения сценария разговора (conversation flow, например, списка вопросов), истории логов (log history) или обязательного отслеживания рассуждений (reasoning trace, например, SGR, см. ниже).
// УПОРЯДОЧЕННАЯ ПОСЛЕДОВАТЕЛЬНОСТЬ
"sequence": [
{ "step_1": "..." },
{ "step_2": "..." }
]👩❤️👨 Мощная комбинация: Массив объектов
Чтобы создавать сложные потоки, вы их комбинируете! Вы используете
Массив
[]для порядка иОбъекты
{}внутри массива, чтобы дать каждому упорядоченному шагу уникальное имя/метку.
Вот так может выглядеть интерактивная последовательность (interactive sequence) - диалог ИИ с пользователем:
// Массив обеспечивает ПОРЯДОК, Объекты предоставляют ИМЕНА
"sequence": [
{ "introduction": "..." },
{ "question_1": "..." }
]💡 Кейс: Schema-Guided Reasoning (Схема-управляемое рассуждение, SGR)
Разработанный российскими инженерами метода SGR построен на этом фундаменте. Он использует массив объектов для принуждения LLM к выполнению последовательного сценария рассуждения:
Массив: Определяет сценарий: Шаг 1 → Шаг 2 → Шаг 3.
Объекты: Дают название каждому шагу мышления:
"Initial_Hypothesis"(Начальная_Гипотеза),"Evidence_Collection"(Сбор_Доказательств),"Final_Conclusion"(Окончательный_Вывод).
⚖️ Практическое правило:
✅ Если порядок критически важен, используйте [].
✅ Если вам просто нужно назвать свойство, используйте {}, в этом случае LLM воспримет весь текст как единое указание.
#JSON #PromptEngineering #StructuredOutput #LLM #SGR #M2M