Replies: 1 comment
|
环境:0.1.1-rc.2 Full logDetails |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
0.1.1-rc.2(npm@deepseek-ai/dsh全家桶 rc.2)llm-pi-ai的自定义供应商直连第三方 OpenAI 兼容网关(api: openai-completions),profile 携带apiKeyEnv引用,key 已通过 Web Models 页面写入托管凭据库并验证有效现象
该路由下所有模型请求均被上游以 AUTH 类错误拒绝:
而用同一把 key 手工 curl 同一 endpoint 返回 200,排除凭据本身问题。
关键证据:本地回显网关抓到的真实请求头
将路由 baseURL 临时指向本地 HTTP 服务后捕获到实际出站请求:
即
Authorization的值 = profile 的baseURL字符串,而非apiKeyEnv解析出的sk-key。判别实验(证明配置读取与凭据解析链路本身正常)
apiKeyEnv改成不存在的引用名MISSING_CREDENTIAL(no credential for provider route ...),说明 profile 读取与 resolveApiKey 链路工作正常apiKeyEnv指向凭据库中已验证有效的 keyBearer <baseURL>即:resolveApiKey 成功拿到正确 key 之后、OpenAI client 组装之前的某一环,apiKey 被 baseURL 覆盖/顶替,且全程静默无任何日志。
最小复现配置
向该路由发送任意消息,对端收到
Authorization: Bearer https://example.com/v1。当前 Workaround(已验证有效)
利用 options.headers 最后合并覆盖的既有行为,在 provider 下显式声明静态鉴权头:
期望行为
apiKeyEnv解析结果应作为 OpenAI client 的 apiKey 使用;附带发现(另一回事,供参考)
上游 opencode.ai/zen 网关对不支持的模型会返回 HTTP 401 +
{"type":"error","error":{"type":"ModelError","message":"Model X is not supported"}},客户端很容易据此误判为凭据错误。来自用户 Yum-wu 的真实排障记录,可随时提供更多现场数据。
All reactions