VibeAPIVibeAPI 开发者文档

Grok 对话

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

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

xAI 的 Grok 系列在本网关上覆盖对话、图像、视频三类能力,共 6 个模型 ID,全部走 OpenAI 兼容协议: base_urlhttps://www.vibeapi.cn/v1openai 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.6grok-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-quality2.0 在本网关不认 aspect_ratio,只有它能指定画幅;注意 11-02 退役
批量出图、对延迟敏感grok-imagine-image-quality单张约 5 秒;2.0 约 40–60 秒

请求参数

参数支持说明
messages必填
max_tokens
temperature / top_p
nn=2 返回 2 个 choice,token 按两份计费(OpenAI 系模型在本网关上 n 不生效,Grok 生效)
seed接受,但推理模型不保证复现,见下文
streamSSE 流式
tools / tool_choice标准 Function Calling;内置 web_search 工具会被网关移除
response_format{"type": "json_object"} 可用
reasoning_effortlow / medium / high(默认)/ xhigh,四档均可用(实测 reasoning_tokens 约 99 / 161 / 157 / 212);none 返回 400,推理不可关闭
logprobs / top_logprobs⚠️返回 200 但字段为 null,静默忽略
stop400 Model grok-4.6 does not support parameter stop
presence_penalty400 does not support parameter presencePenalty
frequency_penalty400 does not support parameter frequencyPenalty

迁移 OpenAI 代码前先删掉 stoppresence_penaltyfrequency_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_effortreasoning.effort

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

推理 token

grok-4.6grok-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" 能明显压低这部分开销。

固定 seedtemperature=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 stopGrok 不支持该 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_effortlow / medium / high / xhigh,别传 nonelogprobs 会被静默忽略
  • 预算按 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

能力边界

  • stoppresence_penaltyfrequency_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

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
    }
  }
}

官方文档