Grok Messages API
更新于:
通过 OpenAI 兼容的 Responses API 生成文本、传递系统和用户消息、读取 token 用量并继续多轮对话。
如果需要在 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 | 是 | 纯文本 prompt,或由 role 和 content 组成的有序消息列表。 |
| instructions | string | 否 | 应用于当前响应的高级行为规则或上下文。 |
| max_output_tokens | integer | 否 | 生成输出 token 的上限,用于控制延迟和成本。 |
| temperature | number | 否 | 采样随机性;除非场景需要明确调整,否则可以省略。 |
| stream | boolean | 否 | 返回增量 SSE 事件,而不是等待完整响应。 |
| store | boolean | 否 | 在支持时控制能否稍后通过 ID 引用该响应。 |
| previous_response_id | string | 否 | 用于继续对话的上一条响应 ID。 |
消息角色与指令
角色用于区分模型指令、当前用户请求和之前的助手回复。
system应用规则、语气、边界和上下文。
user最终用户提供的请求或数据。
assistant本地管理历史记录时包含的上一条模型回复。
响应格式
JSON
{
"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_… 标识符可通过 previous_response_id 继续 stateful 对话,也可用于定位具体请求。
usageinput_tokens 是处理的上下文,output_tokens 是生成文本,total_tokens 是两者之和;输入和输出费用分别计算。
计算公式和当前费率请参阅价格页面.
Stateful 与 stateless 对话
xAI Responses API 格式支持两种方式。stateless 模式由应用保存完整消息历史,并在每次请求中发送所需上下文;stateful 模式通过 previous_response_id 串联轮次,下一次请求只需发送新的用户消息。
Stateless
JavaScript
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
JavaScript
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);