Grok 对话
xAI Grok 系列:6 个模型 ID 与计费方式、grok-4.6 的 Chat / Responses 调用与参数支持、推理 token、错误速查与迁移清单
POST /v1/chat/completions · POST /v1/responses
xAI 的 Grok 系列在本网关上覆盖对话、图像、视频三类能力,共 6 个模型 ID,全部走 OpenAI 兼容协议:
base_url 填 https://www.vibeapi.cn/v1,openai SDK 直接用。它的参数支持与 OpenAI 系差别不小,
直接把 OpenAI 的代码换个 model 就发过来会 400。本页讲对话与全系列共用的模型、计费、错误;
生图见 Grok 图像,视频见 Grok 视频,在 Claude Code 里使用见接入教程。
本页结论来自对本网关的真实调用,并对照 docs.x.ai 逐条核对;与官方口径不一致之处均标注「实测」。最后验证:2026-09-12。
基本调用
curl -N https://www.vibeapi.cn/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.6",
"messages": [{"role": "user", "content": "用一句话解释量子纠缠"}],
"stream": true
}'from openai import OpenAI
client = OpenAI(base_url="https://www.vibeapi.cn/v1", api_key="YOUR_API_KEY")
stream = client.chat.completions.create(
model="grok-4.6",
messages=[{"role": "user", "content": "用一句话解释量子纠缠"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://www.vibeapi.cn/v1", apiKey: "YOUR_API_KEY" });
const stream = await client.chat.completions.create({
model: "grok-4.6",
messages: [{ role: "user", content: "用一句话解释量子纠缠" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}模型
| 模型 | 能力 | 端点 | 计费 |
|---|---|---|---|
grok-4.6 | 对话 / 推理,当前主力 | /v1/chat/completions · /v1/responses | 按 token,两档 |
grok-4.5 | 对话 / 推理,上一代 | 同上 | 按 token,两档,与 4.6 同价 |
grok-imagine-image-2.0 | 文生图 + 图生图,当前主力 | /v1/images/generations · /v1/images/edits | 按张 |
grok-imagine-image-quality | 文生图 + 图生图,上一代 | 同上 | 按张 |
grok-imagine-video-1.5 | 文生 / 图生 / 参考图生视频 | /v1/videos/generations | 按秒 |
grok-imagine-video | 视频编辑 + 视频延长(这两个接口只接受这个模型名) | /v1/videos/edits · /v1/videos/extensions | 按秒 |
grok-imagine-image-quality 官方定于 2026-11-02 退役,之后这个模型名由 2.0 以 quality: low 接管,请求与响应形状不变。
它目前是唯一能指定画幅的 Grok 图像模型,依赖竖图 / 方图的链路要提前打算,见图像。
计费方式
单价随分组倍率变动,一律以价格页为准;这里只讲计费方式,也就是写代码时会影响费用的那几件事。
对话按 token,分两档。 单次请求的输入达到 200K token 时进入第二档,输入、输出、缓存读取单价全部翻倍。
grok-4.6 与 grok-4.5 定价相同,包括这条分档规则。两者都能吃下超长上下文(实测 210K 输入正常返回),
越界的是费用档位,不是上下文长度——把长文档一次性塞进 prompt 之前先算一遍账,能拆到 200K 以内就拆。
图像按张。 n 张就是 n 份费用。图生图复用生图模型,价格与文生图同档。
视频按秒,不是按次。 价格页给的是每秒单价,一条 6 秒视频要乘 6;按实际产出秒数结算,生成失败或超时全额退款。 编辑、延长各自产出的视频重新计费。
新旧两代怎么选
| 场景 | 选谁 | 原因 |
|---|---|---|
| 对话 / 工具调用 / 长上下文 | grok-4.6 | 参数支持与 4.5 完全一致,同价,没有留在 4.5 的理由 |
| 横图、默认画幅 | grok-imagine-image-2.0 | 固定输出 1248×832 |
| 竖图、方图、指定画幅 | grok-imagine-image-quality | 2.0 在本网关不认 aspect_ratio,只有它能指定画幅;注意 11-02 退役 |
| 批量出图、对延迟敏感 | grok-imagine-image-quality | 单张约 5 秒;2.0 约 40–60 秒 |
请求参数
| 参数 | 支持 | 说明 |
|---|---|---|
messages | ✅ | 必填 |
max_tokens | ✅ | |
temperature / top_p | ✅ | |
n | ✅ | n=2 返回 2 个 choice,token 按两份计费(OpenAI 系模型在本网关上 n 不生效,Grok 生效) |
seed | ✅ | 接受,但推理模型不保证复现,见下文 |
stream | ✅ | SSE 流式 |
tools / tool_choice | ✅ | 标准 Function Calling;内置 web_search 工具会被网关移除 |
response_format | ✅ | {"type": "json_object"} 可用 |
reasoning_effort | ✅ | low / medium / high(默认)/ xhigh,四档均可用(实测 reasoning_tokens 约 99 / 161 / 157 / 212);none 返回 400,推理不可关闭 |
logprobs / top_logprobs | ⚠️ | 返回 200 但字段为 null,静默忽略 |
stop | ❌ | 400 Model grok-4.6 does not support parameter stop |
presence_penalty | ❌ | 400 does not support parameter presencePenalty |
frequency_penalty | ❌ | 400 does not support parameter frequencyPenalty |
迁移 OpenAI 代码前先删掉 stop、presence_penalty、frequency_penalty——这三个是 OpenAI 的既有参数,Grok 直接拒绝,不是静默忽略。
多轮对话建议带上 prompt_cache_key(Responses)或请求头 x-grok-conv-id(Chat),把同一会话路由到同一台服务器以稳定命中缓存;
否则常按全价输入计费。
Responses 入口
xAI 官方把 Responses API 列为首选入口,本网关可用:
curl https://www.vibeapi.cn/v1/responses \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "grok-4.6",
"input": [{"role": "user", "content": "How do stars form?"}],
"reasoning": {"effort": "high"}
}'/v1/chat/completions | /v1/responses | |
|---|---|---|
| 会话状态 | 无状态,每次重发全部历史 | 官方支持服务端保存 |
| 多轮 | 自行拼接 messages | 官方支持 previous_response_id |
| 推理档位 | reasoning_effort | reasoning.effort |
本网关返回 store: false,即服务端留存未开启,多轮对话仍需自行携带历史(xAI 官方默认 store: true 保存 30 天,这是网关侧差异)。
推理 token
grok-4.6 与 grok-4.5 都是推理模型,usage 里会有推理消耗:
"usage": {
"prompt_tokens": 212,
"completion_tokens": 65,
"completion_tokens_details": { "reasoning_tokens": 63 },
"prompt_tokens_details": { "cached_tokens": 128 }
}上例一句「回复 PONG」实际消耗 65 个输出 token,其中 63 个是推理 token,可见回复只占 2 个。
按可见回复长度估算成本会严重偏低,请以 usage 为准;reasoning_effort: "low" 能明显压低这部分开销。
固定 seed 与 temperature=0 连续调用,推理 token 数与措辞仍会波动(同一句提示词四次分别 282 / 286 / 311 / 294)。
推理模型不保证确定性复现,需要稳定输出的场景请在应用层处理。
真实响应示例
最后一条是传入不受支持参数时的真实报错,可用于对照你自己的错误处理。
▸grok-4.6 · Chat
请求 POST /v1/chat/completions
{ "model": "grok-4.6", "max_tokens": 120, "messages": [ { "role": "user", "content": "用一句话解释幂等" } ]}响应
{ "id": "5f7a4c41-5d6a-9f4b-8b31-2e09f9bb89c7", "object": "chat.completion", "created": 1788981783, "model": "grok-4.6-build", "choices": [ { "index": 0, "message": { "role": "assistant", "content": "幂等是指一个操作无论执行一次还是多次,其产生的效果(或结果)都相同。", "reasoning_content": "The user asked: \"用一句话解释幂等\" which is Chinese for \"Explain idempotence in one sentence.\"\n" }, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 212, "completion_tokens": 296, "total_tokens": 508, "prompt_tokens_details": { "cached_tokens": 128, "text_tokens": 212, "audio_tokens": 0, "image_tokens": 0 }, "completion_tokens_details": { "text_tokens": 24, "audio_tokens": 0, "image_tokens": 0, "reasoning_tokens": 272 }, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null, "claude_cache_creation_5_m_tokens": 0, "claude_cache_creation_1_h_tokens": 0 }, "system_fingerprint": "fp_08d0bc26c22b024e"}▸grok-4.6 · Responses
请求 POST /v1/responses
{ "model": "grok-4.6", "input": "用一句话解释幂等", "max_output_tokens": 120}响应
{ "created_at": 1788981790, "completed_at": 1788981795, "id": "390bf85e-6263-93a0-b77b-972f4b9c1984", "max_output_tokens": 120, "model": "grok-4.6-build", "object": "response", "output": [ { "id": "rs_XXXXXXXX", "summary": [ { "text": "The user's query is: \"用一句话解释幂等\" which is Chinese for \"Explain idempotence in one sentence.\"\n", "type": "summary_text" } ], "type": "reasoning", "status": "completed" }, { "content": [ { "type": "output_text", "text": "幂等是指某个操作无论执行多少次,其结果都与执行一次相同。", "logprobs": [], "annotations": [] } ], "id": "msg_XXXXXXXX", "role": "assistant", "type": "message", "status": "completed" } ], "parallel_tool_calls": true, "previous_response_id": null, "reasoning": { "effort": "high", "summary": "detailed" }, "temperature": 0.7, "text": { "format": { "type": "text" } }, "tool_choice": "auto", "tools": [], "top_p": 0.95, "usage": { "input_tokens": 212, "input_tokens_details": { "cached_tokens": 128 }, "output_tokens": 243, "output_tokens_details": { "reasoning_tokens": 224 }, "total_tokens": 455, "num_sources_used": 0, "num_server_side_tools_used": 0, "cost_in_usd_ticks": 2873000, "context_details": { "input_tokens": 212, "output_tokens": 243 } }, "user": null, "incomplete_details": null, "status": "completed", "store": false, "metadata": { "system_fingerprint": "fp_08d0bc26c22b024e" }, "background": false, "truncation": "disabled", "top_logprobs": 0, "presence_penalty": 0.0, "frequency_penalty": 0.0, "prompt_cache_key": "f45f1504-ab45-491c-b37f-cc2ce9dd35ea", "max_tool_calls": null, "safety_identifier": null, "error": null, "instructions": null}▸grok-4.6 · 传了不支持的 stop(会 400)HTTP 400
请求 POST /v1/chat/completions
{ "model": "grok-4.6", "max_tokens": 120, "messages": [ { "role": "user", "content": "用一句话解释幂等" } ], "stop": [ "。" ]}响应HTTP 400
{ "error": { "message": "Model grok-4.6 does not support parameter stop. (request id: ...)", "type": "invalid_request_error", "param": "", "code": null }}以上为真实调用抓取并脱敏 · 2026-09-09
容量抖动
Grok 图片 / 视频的号池容量有限,突发并发会失败,而且失败表现与「参数不被支持」很像,容易误判:
同时提交 8 个视频任务,提交全部返回 200,生成阶段整批 failed;相同参数单发或并发 ≤ 2 时全部成功。
失败信息也很笼统(upstream returned error / no eligible account)。
视频提交并发控制在 2 以内,失败用指数退避重试 3–5 次,不要因单次失败就判定某参数不可用。
错误速查
| 现象 | 原因 | 处理 |
|---|---|---|
400 Model grok-4.6 does not support parameter stop | Grok 不支持该 OpenAI 既有参数 | 移除 stop / presence_penalty / frequency_penalty |
400 This model does not support reasoning_effort value none | 推理不可关闭 | 用 low |
400 seconds must be between 1 and 15 | 视频时长越界 | 调整至 1–15 |
400 The number of images to generate (n) must be between 1 and 10 inclusive | 生图数量越界 | 调整至 1–10 |
非流式请求返回空的 text/event-stream,正文只有 data: [DONE] | 上游抖动,一次性空响应 | 直接重试 |
生图 aspect_ratio / resolution / quality 设了不生效 | grok-imagine-image-2.0 在本网关不认这些参数 | 指定画幅用 grok-imagine-image-quality(11-02 退役) |
视频 failed 但参数无误 | 容量抖动 | 退避重试 |
视频 failed + image_download_error | 参考图无法公网直接获取 | 换可直接引用的图床 |
改图 502 可用渠道不存在 | 用了 multipart/form-data 上传图片 | 改成 JSON body,图片走 URL 或 base64 内联 |
/content 502 或 Video request not found,任务却是 completed | 视频已被回收 | 无法找回,需重新生成;今后生成完立即下载落盘 |
400 Video editing is not supported for this model. / Video extension is not supported for this model. | 编辑或延长接口传了 grok-imagine-video-1.5 | 换成不带版本号的 grok-imagine-video |
| 视频编辑后时长翻倍(4 秒变 8 秒) | 走了旧写法 /generations + video 且用 1.5 不传 duration | 改用 /v1/videos/edits + grok-imagine-video |
迁移 OpenAI 代码的检查清单
- 移除
stop/presence_penalty/frequency_penalty reasoning_effort用low/medium/high/xhigh,别传none;logprobs会被静默忽略- 预算按
usage里的reasoning_tokens重新估算——推理模型的隐藏消耗可能远超可见回复 - 生图把
size换成aspect_ratio;用 2.0 时不要依赖画幅,固定 1248×832 - 改图改成 JSON body,不要用 SDK 的 multipart
images.edit() - 视频把
size换成resolution,改成异步轮询,生成完立即下载 - 视频编辑走
/v1/videos/edits、延长走/v1/videos/extensions,模型都写grok-imagine-video
能力边界
stop、presence_penalty、frequency_penalty不支持,传了 400。reasoning_effort: none不支持,推理不可关闭;logprobs被静默忽略。- 内置
web_search工具会被网关移除,其余工具保留。 - Responses 的服务端留存未开,
store恒为false,多轮仍需自带历史。 grok-imagine-image-2.0不认aspect_ratio/resolution/quality,只出 1248×832。size在图像与视频接口里都被静默忽略,改用aspect_ratio/resolution。- 视频文件会被回收,生成完成后立即下载落盘,之后
/content可能取不到。 grok-imagine-edit已下线,代码里还有这个模型名的请移除。
在线调试
填入你自己的 API Key 即可直接发起请求,参数表与响应结构由接口定义生成。
模型填 grok-4.6。
Chat Completions
Authorization
BearerAuth
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
In: header
Request Body
application/json
模型 ID
对话消息列表
采样温度
10 <= value <= 2核采样参数
10 <= value <= 1生成数量
11 <= value是否流式响应
false停止序列
最大生成 Token 数
最大补全 Token 数
0-2 <= value <= 20-2 <= value <= 2推理强度 (用于支持推理的模型)
"low" | "medium" | "high"Response Body
application/json
application/json
application/json
curl -X POST "https://www.vibeapi.cn/v1/chat/completions" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-4", "messages": [ { "role": "system", "content": "string" } ] }'{
"id": "string",
"object": "chat.completion",
"created": 0,
"model": "string",
"choices": [
{
"index": 0,
"message": {
"role": "system",
"content": "string",
"name": "string",
"tool_calls": [
{
"id": "string",
"type": "function",
"function": {
"name": "string",
"arguments": "string"
}
}
],
"tool_call_id": "string",
"reasoning_content": "string"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0,
"prompt_tokens_details": {
"cached_tokens": 0,
"text_tokens": 0,
"audio_tokens": 0,
"image_tokens": 0
},
"completion_tokens_details": {
"text_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0
}
},
"system_fingerprint": "string"
}{
"error": {
"message": "string",
"type": "string",
"param": "string",
"code": "string"
}
}{
"error": {
"message": "string",
"type": "string",
"param": "string",
"code": "string"
}
}Responses
Authorization
BearerAuth
使用 Bearer Token 认证。
格式: Authorization: Bearer sk-xxxxxx
In: header
Request Body
application/json
输入内容,可以是字符串或消息数组
"auto" | "disabled"Response Body
application/json
curl -X POST "https://www.vibeapi.cn/v1/responses" \ -H "Content-Type: application/json" \ -d '{ "model": "string" }'{
"id": "string",
"object": "response",
"created_at": 0,
"status": "completed",
"model": "string",
"output": [
{
"type": "string",
"id": "string",
"status": "string",
"role": "string",
"content": [
{
"type": "string",
"text": "string"
}
]
}
],
"usage": {
"prompt_tokens": 0,
"completion_tokens": 0,
"total_tokens": 0,
"prompt_tokens_details": {
"cached_tokens": 0,
"text_tokens": 0,
"audio_tokens": 0,
"image_tokens": 0
},
"completion_tokens_details": {
"text_tokens": 0,
"audio_tokens": 0,
"reasoning_tokens": 0
}
}
}