Три обязательных поля
Тело запроса — это JSON с тремя обязательными полями:
{
"model": "claude-opus-4-8",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Сделай вежливый ответ клиенту: где мой заказ?"}
]
}
model— какую модель звать (точная строка, без выдуманных дат — об этом отдельный урок).max_tokens— потолок длины ответа в токенах. Поле обязательное. Поставишь слишком мало — ответ оборвётся на полуслове.messages— список сообщений диалога. Каждое — объект сrole(userилиassistant) иcontent(текст).
Необязательный system
Есть ещё system — это инструкция верхнего уровня, которая задаёт роль и правила поведения модели. Она лежит рядом с messages, а не внутри них:
{
"model": "claude-opus-4-8",
"max_tokens": 1024,
"system": "Ты — оператор поддержки интернет-магазина. Отвечай кратко и вежливо.",
"messages": [
{"role": "user", "content": "Где мой заказ №1542?"}
]
}
system — это отдельное поле верхнего уровня, а не сообщение с role: "system" внутри messages. Не путай: роли в messages — только user и assistant.
Что вернёт сервер
По такому запросу сервер пришлёт JSON с ответом ассистента: текст внутри массива content, причину остановки stop_reason и счётчики токенов usage. Разберём ответ детально в следующем уроке.
Для обычных ответов max_tokens ~16000 — нормальный потолок. При стриминге больших ответов берут до ~64000. Главное — не лишать модель места: ответ молча обрежется по этому лимиту.