模型能列出但调用失败: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 日志核对模型和请求时间。先看 真实调用记录的验证范围;未覆盖的功能需单独测试。成本和权限:实时模型价格 · 创建分组令牌。