登录
开发者文档

Grok 对话

xAI Grok 系列:7 个模型 ID 与计费方式、grok-4.7 / grok-4.6 的 Chat / Responses 调用与参数支持、推理 token、错误速查与迁移清单

wan3.0-video-prime-720p

POST /v1/chat/completions · POST /v1/responses

xAI 的 Grok 系列在本网关上覆盖对话、图像、视频三类能力,共 7 个模型 ID,全部走 OpenAI 兼容协议: base_url 填 https://www.vibeapi.cn/v1,openai SDK 直接用。它的参数支持与 OpenAI 系差别不小: stop、presence_penalty、frequency_penalty、n、logprobs 传了都返回 200,但都不生效。本页讲对话与全系列共用的模型、计费、错误; 生图见 Grok 图像,视频见 Grok 视频,在 Claude Code 里使用,用 VibeCLI 一条命令配好,/model 里直接选 Grok。

本页结论来自对本网关的真实调用,并对照 docs.x.ai 逐条核对;与官方口径不一致之处均标注「实测」。最后验证:2026-10-13(联网搜索)、2026-09-23(其余)。

基本调用

curl -N https://www.vibeapi.cn/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.7",
    "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.7",
    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.7",
  messages: [{ role: "user", content: "用一句话解释量子纠缠" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

模型

模型能力端点计费
grok-4.7对话 / 推理,最新一代/v1/chat/completions · /v1/responses按 token,两档,与 4.6 同价
grok-4.6对话 / 推理同上按 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.7、grok-4.6、grok-4.5 三个定价相同,包括这条分档规则。4.6 与 4.5 都能吃下超长上下文(实测 210K 输入正常返回), 越界的是费用档位,不是上下文长度——把长文档一次性塞进 prompt 之前先算一遍账,能拆到 200K 以内就拆。

图像按张。 n 张就是 n 份费用。图生图复用生图模型,价格与文生图同档。

联网搜索按次。 走 Responses 入口时,web_search 按实际搜索次数计费,每千次 5 美元;x_search 按抓取的 X 帖子(每千条 5 美元)和用户资料(每千份 10 美元)计。都要乘分组倍率,调用日志里写明次数与费用。模型没有真的去搜就不收这部分。

视频按秒,不是按次。 价格页给的是每秒单价,一条 6 秒视频要乘 6;按实际产出秒数结算,生成失败或超时全额退款。 编辑、延长各自产出的视频重新计费。

新旧两代怎么选

场景选谁原因
长时 Agent、编码grok-4.7与 4.6 同价,参数支持一致(2026-09-23 逐项复测);每次请求多带约 1,000 个隐藏输入 token,见推理 token
短问答、高频小请求grok-4.6隐藏输入约 210 token,单次成本低于 4.7;与 4.5 同价同参数,没有留在 4.5 的理由
横图、默认画幅grok-imagine-image-2.0固定输出 1248×832
竖图、方图、指定画幅grok-imagine-image-quality2.0 在本网关不认 aspect_ratio,只有它能指定画幅;注意 11-02 退役
批量出图、对延迟敏感grok-imagine-image-quality单张约 5 秒;2.0 约 40–60 秒

请求参数

参数支持说明
messages✅必填
max_tokens✅只约束可见回复,推理 token 另算:设 20 时实得 20 个可见 token + 96 个推理 token
temperature / top_p✅
n⚠️返回 200,但只回 1 个 choice(4.5 / 4.6 / 4.7 相同;2026-09-12 时 n=2 还能返回 2 个)。要多个候选请并发多次
seed✅接受,但推理模型不保证复现,见下文
stream✅SSE 流式
tools / tool_choice✅标准 Function Calling。Chat 接口不支持 xAI 的内置搜索(带上 web_search / x_search 会返回 422),网关会移除 web_search;要联网请走 Responses 入口
response_format✅{"type": "json_object"} 可用
reasoning_effort✅low / medium / high(默认)/ xhigh,四档均可用(4.6 实测 reasoning_tokens 约 99 / 161 / 157 / 212);none 返回 200 但推理照常(仍有约 200 个 reasoning_tokens),推理不可关闭
logprobs / top_logprobs⚠️返回 200 但字段为 null,静默忽略
stop⚠️返回 200,静默忽略:停止词照常出现在输出里
presence_penalty / frequency_penalty⚠️返回 200,从响应上看不出是否生效,按不生效处理

stop 不再报错,但也不生效。 2026-09-12 时这三个参数传了直接 400;2026-09-23 复测 4.5 / 4.6 / 4.7 都改成返回 200、 输出不受约束。依赖停止序列截断的逻辑,要改成在客户端截断。

多轮对话建议带上 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.7",
    "input": [{"role": "user", "content": "How do stars form?"}],
    "reasoning": {"effort": "high"}
  }'
/v1/chat/completions/v1/responses
会话状态无状态,每次重发全部历史官方支持服务端保存
多轮自行拼接 messages官方支持 previous_response_id
推理档位reasoning_effortreasoning.effort

本网关返回 store: false,即服务端留存未开启,多轮对话仍需自行携带历史(xAI 官方默认 store: true 保存 30 天,这是网关侧差异)。

联网搜索

Responses 入口支持 xAI 的两个服务端搜索工具,由 xAI 服务端执行,结果直接写进回答:

  • web_search:网页搜索。回复的 output 里每搜一次有一个 web_search_call 条目。
  • x_search:搜 X(Twitter)上的帖子和用户资料。
curl https://www.vibeapi.cn/v1/responses \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "grok-4.7",
    "input": "联网搜一条今天的科技新闻,一句话,带出处",
    "tools": [{"type": "web_search"}]
  }'
  • OpenAI 规范里 web_search 的 external_web_access、search_context_size 两个字段 xAI 不支持,网关转发前会删掉,工具本身保留。Codex 默认会带 external_web_access,所以 Codex 接 Grok 可以直接联网。
  • user_location、filters(如 allowed_domains)可用。
  • 旧写法 web_search_preview 不报错,但不会真的执行搜索,请用 web_search。
  • Chat 接口(/v1/chat/completions)不支持这两个工具。
  • 费用见上文计费方式。

推理 token

三个对话模型都是推理模型,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)。 推理模型不保证确定性复现,需要稳定输出的场景请在应用层处理。

隐藏输入 token。 上例只发了一句话,prompt_tokens 却是 212——每次请求都带着一段看不见的系统提示。 grok-4.7 的这部分更大:发一句 hi,prompt_tokens 是 1,243,其中 1,152 命中缓存(按缓存读取单价计费)。 估算成本时把这段固定开销算进去,高频短请求用 4.6 更省。

真实响应示例

最后一条是传了 stop 的真实响应:返回 200,回复末尾仍是停止词「。」。

▸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.7 · Chat

请求 POST /v1/chat/completions

{  "model": "grok-4.7",  "max_tokens": 120,  "messages": [    {      "role": "user",      "content": "用一句话解释幂等"    }  ]}

响应

{  "id": "4334f051-b90c-96c4-86db-ec53e5931a40",  "object": "chat.completion",  "created": 1790155893,  "model": "grok-4.7-build",  "choices": [    {      "index": 0,      "message": {        "role": "assistant",        "content": "幂等是指同一个操作执行一次和执行多次,最终结果完全一样。",        "reasoning_content": "The user asked in Chinese: \"用一句话解释幂等\" which means \"Explain idempotency in one sentence.\"\n",        "tool_calls": null      },      "finish_reason": "stop"    }  ],  "usage": {    "prompt_tokens": 1248,    "completion_tokens": 128,    "total_tokens": 1376,    "prompt_tokens_details": {      "cached_tokens": 1152,      "text_tokens": 0,      "audio_tokens": 0,      "image_tokens": 0    },    "completion_tokens_details": {      "text_tokens": 17,      "audio_tokens": 0,      "image_tokens": 0,      "reasoning_tokens": 111    },    "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": ""}
▸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:返回 200,但停止词照常出现

请求 POST /v1/chat/completions

{  "model": "grok-4.6",  "max_tokens": 120,  "messages": [    {      "role": "user",      "content": "用一句话解释幂等"    }  ],  "stop": [    "。"  ]}

响应

{  "id": "4bfe1352-debe-9595-860d-2a09bc973af5",  "object": "chat.completion",  "created": 1790155873,  "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",        "tool_calls": null      },      "finish_reason": "stop"    }  ],  "usage": {    "prompt_tokens": 212,    "completion_tokens": 356,    "total_tokens": 568,    "prompt_tokens_details": {      "cached_tokens": 128,      "text_tokens": 0,      "audio_tokens": 0,      "image_tokens": 0    },    "completion_tokens_details": {      "text_tokens": 25,      "audio_tokens": 0,      "image_tokens": 0,      "reasoning_tokens": 331    },    "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": ""}

以上为真实调用抓取并脱敏 · 2026-09-09

容量抖动

Grok 图片 / 视频的号池容量有限,突发并发会失败,而且失败表现与「参数不被支持」很像,容易误判: 同时提交 8 个视频任务,提交全部返回 200,生成阶段整批 failed;相同参数单发或并发 ≤ 2 时全部成功。 失败信息也很笼统(upstream returned error / no eligible account)。

视频提交并发控制在 2 以内,失败用指数退避重试 3–5 次,不要因单次失败就判定某参数不可用。

错误速查

现象原因处理
设了 stop,输出没在停止词处截断Grok 静默忽略 stop在客户端截断
n=2 只拿到 1 个 choiceGrok 现在不执行 n并发多次请求
reasoning_effort: none 仍有 reasoning_tokens推理不可关闭用 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 / n / logprobs 传了不报错也不生效,依赖它们的逻辑改到客户端
  • reasoning_effort 用 low / medium / high / xhigh;none 不报错,但关不掉推理
  • 预算按 usage 里的 reasoning_tokens 与 prompt_tokens 重新估算——推理 token 和隐藏系统提示都可能远超可见内容
  • 生图把 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、n、logprobs 返回 200 但不生效。
  • 推理不可关闭,reasoning_effort: none 返回 200 但照常推理。
  • Chat 接口不支持内置搜索,web_search 会被网关移除;联网请用 Responses 的 web_search / x_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.7 或 grok-4.6。

Chat Completions

POST
/v1/chat/completions

Authorization

BearerAuth

AuthorizationBearer <token>

使用 Bearer Token 认证。 格式: Authorization: Bearer sk-xxxxxx

In: header

Request Body

application/json

model*string

模型 ID

messages*

对话消息列表

temperature?number

采样温度

Default1
Range0 <= value <= 2
top_p?number

核采样参数

Default1
Range0 <= value <= 1
n?integer

生成数量

Default1
Range1 <= value
stream?boolean

是否流式响应

Defaultfalse
stream_options?
stop?string|

停止序列

max_tokens?integer

最大生成 Token 数

max_completion_tokens?integer

最大补全 Token 数

presence_penalty?number
Default0
Range-2 <= value <= 2
frequency_penalty?number
Default0
Range-2 <= value <= 2
logit_bias?
user?string
tools?
tool_choice?string|
response_format?
seed?integer
reasoning_effort?string

推理强度 (用于支持推理的模型)

Value in"low" | "medium" | "high"
modalities?array<string>
audio?

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

POST
/v1/responses

Authorization

BearerAuth

AuthorizationBearer <token>

使用 Bearer Token 认证。 格式: Authorization: Bearer sk-xxxxxx

In: header

Request Body

application/json

model*string
input?string|

输入内容,可以是字符串或消息数组

instructions?string
max_output_tokens?integer
temperature?number
top_p?number
stream?boolean
tools?
tool_choice?string|
reasoning?
previous_response_id?string
truncation?string
Value in"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
    }
  }
}

官方文档

最后更新于