Messages API: ключевые параметры
Каждый вызов Claude через Messages API требует трёх параметров:
- model — имя модели (например,
claude-opus-4-5)
- max_tokens — жёсткий лимит токенов в ответе
- messages — массив объектов с полями
role и content
Роли обязаны чередоваться, и массив всегда начинается с user.
Правильный формат
PROMPT = "Hi Claude, how are you?"
# → корректно: {"role": "user", "content": PROMPT}
# Ошибка — два user-сообщения подряд:
messages=[
{"role": "user", "content": "Celine Dion birth year?"},
{"role": "user", "content": "Tell me more about her."}
]
# API вернёт ошибку 400
Системный промпт
Системный промпт задаёт контекст до первого пользовательского сообщения:
SYSTEM_PROMPT = "Your answer should always be a series of critical thinking questions that further the conversation (do not provide answers). Do not actually answer the user question."
PROMPT = "Why is the sky blue?"
# Claude ответит вопросами, не объяснением
Зачем это важно
Системный промпт — ваш главный инструмент управления поведением Claude. Он задаёт роль, тон, ограничения и формат ответа раньше, чем пользователь напишет хоть слово.
Когда использовать prefill
В последнем assistant-сообщении можно начать ответ за Claude — он продолжит с того места:
messages=[
{"role": "user", "content": "List three fruits."},
{"role": "assistant", "content": "1."} # Claude продолжит: " Apple
2. Banana
3. Cherry"
]