Messages API для Grok
Обновлено:
Генерация текста через Messages API Grok — основной формат взаимодействия с нейросетью Grok. Формат запросов, параметры, примеры ответов и работа с историей диалога.
Если ответ нужно показывать по мере генерации ответа, используйте Streaming API.
Пример запроса
curl https://api.llm-gate.tech/v1/responses \
-H "Authorization: Bearer $GROK_API_DEV_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.5",
"input": [
{"role": "system", "content": "Answer clearly and concisely."},
{"role": "user", "content": "Объясни бинарный поиск в двух предложениях"}
]
}'Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
| model | string | Да | ID модели. Для описанной на сайте модели используйте grok-4.5. |
| input | string | array | Да | Строка с промптом или упорядоченный массив сообщений с role и content. |
| instructions | string | Нет | Общие правила поведения или контекст для текущего ответа. |
| max_output_tokens | integer | Нет | Верхняя граница выходных токенов для контроля задержки и стоимости. |
| temperature | number | Нет | Степень случайности генерации. Не задавайте без необходимости точной настройки. |
| stream | boolean | Нет | Возвращает последовательные SSE-события вместо ожидания полного ответа. |
| store | boolean | Нет | Определяет, можно ли позже сослаться на ответ по ID, если режим поддерживается. |
| previous_response_id | string | Нет | ID предыдущего ответа для продолжения диалога. |
Роли сообщений и инструкции
Роли отделяют общие инструкции для модели, текущий запрос пользователя и предыдущие ответы ассистента.
systemПравила приложения, тон ответа, ограничения и контекст.
userЗапрос или данные, полученные от пользователя.
assistantПредыдущий ответ модели при локальном хранении истории.
Формат ответа
{
"id": "resp_01abc",
"object": "response",
"status": "completed",
"model": "grok-4.5",
"output": [{
"type": "message",
"role": "assistant",
"content": [{
"type": "output_text",
"text": "A binary search repeatedly halves the search range."
}]
}],
"usage": {
"input_tokens": 24,
"output_tokens": 12,
"total_tokens": 36
}
}statuscompletedОтвет готов.
in_progressГенерация ещё выполняется.
incompleteОтвет остановлен до завершения.
id- Идентификатор resp_… нужен для продолжения stateful-диалога через previous_response_id и диагностики конкретного запроса.
usageinput_tokens — обработанный контекст, output_tokens — сгенерированный текст, total_tokens — их сумма. Стоимость входных и выходных токенов рассчитывается отдельно.
Формулу расчёта и актуальные ставки смотрите на странице «Цены».
Stateful- и stateless-диалоги
Формат xAI Responses API поддерживает оба подхода. В stateless-режиме приложение само хранит всю историю сообщений и передаёт нужный контекст в каждом запросе. В stateful-режиме API связывает реплики через previous_response_id, поэтому в следующий запрос достаточно добавить новое сообщение пользователя.
Stateless
const history = [
{ role: "user", content: "Explain binary search in one sentence." },
{ role: "assistant", content: "Binary search repeatedly halves a sorted search range." },
{ role: "user", content: "Now show a JavaScript implementation." },
];
const response = await client.responses.create({
model: "grok-4.5",
input: history,
store: false,
});
console.log(response.output_text);Stateful
const first = await client.responses.create({
model: "grok-4.5",
input: "Explain binary search in one sentence.",
});
const followUp = await client.responses.create({
model: "grok-4.5",
previous_response_id: first.id,
input: "Now show a JavaScript implementation.",
});
console.log(followUp.output_text);