2.3 KiB
2.3 KiB
R2.7.3 Grok 账号测试与网关路径复核报告
新证据
用户在 Sub2API 管理端对 https://sub.yjxm1221.top grok 执行账号连接测试成功:账号类型为 API Key,模型为 grok-4.5,上游返回正常文本。这证明账号凭据、base URL 和最小 xAI Responses 请求可用。
网关复测
使用绑定 Grok 分组的 Sub2API Key,经公开 /v1/responses 复测:
- 结构化 Codex 风格请求返回 502,请求 ID
86069838-2559-45a7-a683-8b029f03b447。 - 账号连接测试同形态的
input:"hi" + stream:true请求,在调度恢复后仍返回 502,请求 IDdfd99f91-52e4-4de9-bea9-d64a3e8e623b。 - 502 后
v0.1.155会把 Grok 账号临时不可调度 2 分钟;期间请求返回 503no available accounts。这解释了中间的 503,但不是首个 502 的根因。 - 原生窗口显示账号 36 可恢复为
AVAILABLE=true,因此不是永久禁用或认证错误。
v0.1.155 源码路径差异
管理端 testGrokAccountConnection:
- 直接使用账号的 API Key 和 base URL。
- 请求体固定为
model + input:"hi" + stream:true。 - 不经过分组调度。
- 不注入 Grok prompt-cache identity。
公开 Grok gateway 的 forwardGrokResponses:
- 先经过分组调度和模型映射。
- 调用
resolveGrokCacheIdentity,按 Sub2API API Key、模型和请求内容生成租户隔离 identity。 - 即使是 Grok API Key 账号,也会向 Responses body 写入
prompt_cache_key,并写入X-Grok-Conv-Idheader;只有 Free OAuth 专属工具注入受IsGrokOAuth()限制。 - 第三方 base URL 因而收到的载荷不等同于管理端连接测试。
结论
“账号连接测试成功”与“Codex 经 Sub2API Grok 分组成功”并不矛盾。前者证明最小直连可用;后者当前稳定在上游账号 36 返回 502 后失败。根据 v0.1.155 源码,最值得优先验证的差异是公开网关为第三方 Grok API Key 上游增加的 prompt_cache_key / X-Grok-Conv-Id 及其他 Responses 净化,而不是本地 config.toml.grok、auth.json.grok 或账号凭据。
本任务保持只读,没有修改账号、runtime、分组或 Sub2API 源码。当前 Codex profile 配置仍正确,但该第三方上游尚未通过真实 Codex 网关载荷验收。