
1. 用 OpenAI SDK 接入 Grok
本站的 Grok 文字模型使用 OpenAI 兼容入口。先在模型广场复制当前密钥可见的模型代号,再配置 Base URL 和 Bearer API Key:
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 / 403 | Bearer 格式、Key 是否完整、密钥权限 | 用最小请求重新认证 |
| 模型不存在 | 模型代号、分组和端点 | 从模型广场复制,不要手写 |
| 429 Rate Limit | Token、并发、滚动时间窗和账户额度 | 降低并发并有限退避 |
| 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 图片生成 API和Grok 视频生成 API,确认当前模型支持的尺寸、返回格式和任务状态。图片价格与可用规格以控制台显示为准。
排查媒体请求时保存任务 ID、状态码和最终状态,隐藏完整提示词中的业务数据和 API Key。
5. 用最小请求确认哪一层出错
把排查固定成可重复记录,才能判断问题来自客户端、网关还是上游。每次测试保存 UTC 时间、模型代号、是否流式、状态码、请求 ID 和响应头;日志中隐藏 API Key 与业务提示词。
- 先用
stream=false和一句短提示确认普通 JSON 是否有内容。 - 再只打开流式输出,比较每个 SSE 事件是否包含
delta.content或reasoning_content。 - 固定同一模型换一个密钥分组,区分模型权限与账户额度。
- 用同一请求对照另一个可用模型,记录 429 响应头中的限流窗口。
如果非流式成功而流式失败,优先修复客户端 SSE 拼接;如果所有模型都失败,再查看网关请求记录和额度。
6. 常见问题
Grok 能直接用 OpenAI SDK 吗?
本站文字模型提供 OpenAI 兼容入口,通常只需修改 Base URL、API Key 和模型代号;Grok 特有字段仍要按当前接口说明适配。
为什么 HTTP 200 还是空回复?
先关闭流式读取原始 JSON,再检查客户端是否只读取 `content` 而忽略 `reasoning_content`,或是否错误拼接了 SSE 的 `[DONE]` 事件。
429 后切换模型一定有效吗?
不一定。切换模型只是判断模型级限流的实验;账户额度或全局并发仍会让所有模型失败。
本文依据本站现有故障记录与公开开发者社区的共性问题整理,不把社区中的单次延迟、额度或公益站承诺写成固定规格。使用前以模型广场、密钥分组和控制台记录为准。更新时间:2026-09-01。