Grok API · OpenAI 兼容接入

Grok API 中转站怎么接?429、SSE 与空回复排查

Grok 接入失败通常不是单一原因:模型代号可能不在密钥分组,429 可能来自滚动窗口,HTTP 200 也可能因为流式解析或 reasoning 字段被客户端丢弃。用分层验证替代反复重试。

更新:2026-09-01·作者:island AI Coding 技术团队
Base URLhttps://www.codex789.com/v1
聊天端点/chat/completions
排错重点Key / 模型 / 流式
xAI 与 codex789.com 模型列表端点返回不同认证错误结构的对照证据
兼容错误对照:xAI 与本站模型列表端点均拒绝脱敏无效 Key,但 HTTP 状态和错误结构不同。该结果用于说明客户端不能硬编码单一错误格式,未发送真实模型请求,也不证明模型可用性。

1. 用 OpenAI SDK 接入 Grok

本站的 Grok 文字模型使用 OpenAI 兼容入口。先在模型广场复制当前密钥可见的模型代号,再配置 Base URL 和 Bearer API Key:

Python
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://www.codex789.com/v1",
)
response = client.chat.completions.create(
    model="MODEL_ID",
    messages=[{"role": "user", "content": "用三点总结 API 日志"}],
    stream=False,
)
print(response.choices[0].message.content)

不要从文章标题猜测 MODEL_ID。同名展示页、不同密钥分组或下线代号都可能导致 400/404;以控制台实际列表为准。

2. 先把错误分成四类

现象优先检查下一步
401 / 403Bearer 格式、Key 是否完整、密钥权限用最小请求重新认证
模型不存在模型代号、分组和端点从模型广场复制,不要手写
429 Rate LimitToken、并发、滚动时间窗和账户额度降低并发并有限退避
HTTP 200 但内容为空SSE 解析、`reasoning_content`、客户端字段映射关闭 stream,用原始 JSON 对照

本站已有Grok 429 专题空回复专题,本文把两个问题放进同一条验证链,避免把协议解析误判成上游故障。

3. Grok 429:不要无限重试

429 可能由单个模型的 Token 窗口、账户级并发、密钥额度或上游容量触发。先固定一个短提示,并发降到 1,关闭工具调用;连续失败后记录请求 ID和时间,不要继续发送相同写入请求。

有限退避逻辑
for attempt in range(4):
    response = request()
    if response.ok:
        break
    if response.status_code not in (408, 429, 500, 502, 503, 504):
        raise RuntimeError(response.text)
    sleep(2 ** attempt + random_jitter())

若换模型后成功,优先判断模型级限制;若所有模型都失败,再检查账户额度和网关线路。成功后逐步恢复长上下文、并发和流式输出。

4. 图片、视频与文字不是同一个端点

Grok Imagine 图片和视频任务的参数、异步状态和计费口径与聊天接口不同。不要把文字模型的 /chat/completions 示例直接套到媒体接口;先查看Grok 图片生成 APIGrok 视频生成 API,确认当前模型支持的尺寸、返回格式和任务状态。图片价格与可用规格以控制台显示为准。

排查媒体请求时保存任务 ID、状态码和最终状态,隐藏完整提示词中的业务数据和 API Key。

5. 用最小请求确认哪一层出错

把排查固定成可重复记录,才能判断问题来自客户端、网关还是上游。每次测试保存 UTC 时间、模型代号、是否流式、状态码、请求 ID 和响应头;日志中隐藏 API Key 与业务提示词。

  1. 先用 stream=false 和一句短提示确认普通 JSON 是否有内容。
  2. 再只打开流式输出,比较每个 SSE 事件是否包含 delta.contentreasoning_content
  3. 固定同一模型换一个密钥分组,区分模型权限与账户额度。
  4. 用同一请求对照另一个可用模型,记录 429 响应头中的限流窗口。

如果非流式成功而流式失败,优先修复客户端 SSE 拼接;如果所有模型都失败,再查看网关请求记录和额度。

6. 常见问题

Grok 能直接用 OpenAI SDK 吗?

本站文字模型提供 OpenAI 兼容入口,通常只需修改 Base URL、API Key 和模型代号;Grok 特有字段仍要按当前接口说明适配。

为什么 HTTP 200 还是空回复?

先关闭流式读取原始 JSON,再检查客户端是否只读取 `content` 而忽略 `reasoning_content`,或是否错误拼接了 SSE 的 `[DONE]` 事件。

429 后切换模型一定有效吗?

不一定。切换模型只是判断模型级限流的实验;账户额度或全局并发仍会让所有模型失败。

本文依据本站现有故障记录与公开开发者社区的共性问题整理,不把社区中的单次延迟、额度或公益站承诺写成固定规格。使用前以模型广场、密钥分组和控制台记录为准。更新时间:2026-09-01。