Формат ответа: JSON, Markdown, обычный текст
Формат ответа: JSON, Markdown, обычный текст
До сих пор мы в основном позволяли модели отвечать так, как ей удобно. Но в реальных задачах формат ответа часто важнее содержания. Если модель возвращает JSON — его можно распарсить и передать другой системе. Если Markdown — красиво отобразить. Если обычный текст — показать пользователю. Умение управлять форматом — один из главных навыков промпт-инженера.
Три основных формата
Обычный текст — ответ сплошным текстом без структуры. Подходит для: диалогов, писем, простых объяснений.
Объясни, что такое API, в двух предложениях.
Markdown — текст с заголовками, списками, таблицами, выделением. Подходит для: документации, статей, отчётов.
Объясни, что такое API. Используй Markdown: заголовок, определение,
список из 3 примеров использования.
JSON — структурированные данные. Подходит для: передачи в код, базы данных, API-интеграции.
Объясни, что такое API. Ответь в формате JSON с полями:
definition (строка), examples (массив из 3 строк).
Как указать формат
Самый надёжный способ — сказать прямо:
Ответь в формате JSON.
Но «в формате JSON» — размыто. Модель не знает, какая у тебя схема. Поэтому лучший способ — показать:
Вход:
У меня есть описание товара. Извлеки из него название, цену и категорию.
Ответь СТРОГО в формате JSON, без дополнительного текста до и после.
Используй ключи: "name", "price", "category".
Описание: "Ноутбук Lenovo ThinkPad, 85 000 рублей, категория — офисная техника."
Выход:
{
"name": "Ноутбук Lenovo ThinkPad",
"price": "85 000 рублей",
"category": "офисная техника"
}
Важные элементы этого промпта:
- «СТРОГО в формате JSON» — убирает неоднозначность.
- «Без дополнительного текста до и после» — предотвращает «Вот ваш JSON:» перед ответом.
- Точные имена ключей — модель знает структуру.
Когда модель «оборачивает» JSON в текст
Типичная проблема: просишь JSON, а получаешь:
Конечно! Вот данные в формате JSON:
```json
{
"name": "Ноутбук",
"price": 85000
}
Надеюсь, это то, что вам нужно!
Этот ответ нельзя напрямую скормить `JSON.parse()`. Чтобы этого избежать, добавь в промпт:
Ответь ТОЛЬКО JSON-объектом. Не добавляй приветствия, пояснения и обрамления в ```. Первый символ твоего ответа должен быть "{".
### Markdown: управление структурой
Markdown — более гибкий формат. Им можно управлять через указание конкретных элементов:
Напиши обзор языка Python. Ответь в формате Markdown со следующей структурой:
Что такое Python
(2–3 предложения)
Преимущества
- (список из 4–5 пунктов)
Пример кода
(простой пример на Python)
Где используется
| Область | Пример |
|---|---|
| (3–4 строки таблицы) |
Модель выдаст точно структурированный Markdown.
### Обычный текст: когда формат не важен
Обычный текст — формат по умолчанию. Его не нужно запрашивать специально. Но иногда модель склонна использовать Markdown даже там, где он не нужен. Если хочешь заставить её отвечать plain text:
Ответь обычным текстом, без Markdown-форматирования. Никаких заголовков через #, списков через -, таблиц, ```-блоков.
### Выбор формата под задачу
| Задача | Формат | Почему |
|--------|--------|--------|
| Ответ пользователю в чате | Обычный текст | Простота, естественность |
| Статья / документация | Markdown | Заголовки, списки, читаемость |
| Данные для кода | JSON | Парсинг, автоматизация |
| Письмо / рассылка | Обычный текст | Почтовые клиенты не всегда корректно отображают Markdown |
| Отчёт для руководства | Markdown | Таблицы и структура |
| Данные для загрузки в БД | JSON / CSV | Машинная обработка |
### Проверь себя
Тебе нужно, чтобы модель проанализировала 5 отзывов и вернула для каждого: тональность (позитивная/негативная) и краткое резюме. Какой формат ответа выберешь и как опишешь его в промпте?
*Ответ: JSON, потому что 5 структурированных ответов нужно будет обрабатывать программно. Промпт: «Ответь ТОЛЬКО JSON-массивом. Каждый элемент — объект с полями "review_id" (число), "sentiment" ("positive"/"negative"), "summary" (строка до 10 слов). Не добавляй текст вне JSON.»*
### Итог
- Формат ответа — то, в каком виде модель возвращает результат. Три основных: обычный текст, Markdown, JSON.
- JSON требует точных инструкций: имена ключей, «без дополнительного текста», «первый символ — {».
- Markdown управляется через указание конкретных элементов: заголовки, списки, таблицы, код-блоки.
- Формат выбирается под задачу: JSON для автоматизации, Markdown для чтения, plain text для диалогов.
### Что дальше
Формат — это скелет ответа. Теперь добавим «мышцы» — стиль и тон. Как сделать так, чтобы ответ в нужном формате звучал ещё и так, как тебе нужно: от строгого делового до расслабленного разговорного.