模型能列出但调用失败:401、403 与协议检查

更新于 ;软件与模型验证范围见正文。

先区分发现模型与允许生成

GET /v1/models 返回 200 仅说明可读取目录。生成请求还要检查模型权限、令牌额度、所属分组和接口协议;复制模型 ID,不用展示名称替代。

症状具体检查修复后验证
401检查令牌是否完整、失效,客户端是否读到正确变量;保持 Key 与网关匹配重新发短文本,记录状态及脱敏错误体
403 / 模型不可用控制台令牌权限、分组支持协议、model 字段选择当前允许的模型与接口
HTTP 200 但空结果 / HTML检查 Content-Type 和该协议结果字段,不用 Chat choices 读取 Responses output对照 协议响应结构
模型拒答检查服务端实际文本;拒答不能当作认证失败用简单算术题判断基本文本能力,不强迫绕过限制

Claude Code:只选择确定的鉴权来源

用户 settings.json、项目设置、shell 变量及 CC Switch 接管可能同时存在。AUTH_TOKEN 发 Bearer,API_KEY 发 x-api-key;不要叠加来源不明的凭据。回到 Messages 直连配置,本次算术题结果为 4。

OpenCode:提供商、包与模型 ID 对应

核对 apizt/gpt-6-sol、provider.apizt、models.gpt-6-sol;apiKey 引用 env 时启动进程必须有该变量。用户配置与项目配置合并,检查 OPENCODE_CONFIG_CONTENT 的覆盖。回到 OpenCode 完整配置。

修复后验证与下一步

在原工具中新建会话,发送短文本,再对照 apizt 日志核对模型和请求时间。先看 真实调用记录的验证范围;未覆盖的功能需单独测试。成本和权限:实时模型价格 · 创建分组令牌。