Grok API

Grok Messages API

View as Markdown

更新于:

通过 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": "用两句话解释二分查找"}
    ]
  }'

请求参数

字段类型必填说明
modelstring模型 ID。本网站所述模型使用 grok-4.5。
inputstring | array纯文本 prompt,或由 role 和 content 组成的有序消息列表。
instructionsstring应用于当前响应的高级行为规则或上下文。
max_output_tokensinteger生成输出 token 的上限,用于控制延迟和成本。
temperaturenumber采样随机性;除非场景需要明确调整,否则可以省略。
streamboolean返回增量 SSE 事件,而不是等待完整响应。
storeboolean在支持时控制能否稍后通过 ID 引用该响应。
previous_response_idstring用于继续对话的上一条响应 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
  }
}
status
completed

响应已就绪。

in_progress

仍在生成。

incomplete

响应在完成前停止。

id
resp_… 标识符可通过 previous_response_id 继续 stateful 对话,也可用于定位具体请求。
usage

input_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);