先看现象。在 sensetime 的兼容接口上调 SenseChat-5,返回 400,原文 model is not activated,控制台里能看到模型卡片但右侧没有已开通标记,同事的账号同样的 key 结构却可以调用。
排查方向其实有限,先把可能性排一排。账号只完成了注册,模型需要单独申请开通。也可能是调用的模型版本号写成了旧版,新账号不再授权。
少数情况下是企业认证未通过,接口只放开基础模型。
不容易想到的是,子账号没有继承主账号的模型权限。
先列出当前账号已授权的模型
curl -s https://api.sensenova.cn/v1/llm/models -H "Authorization: Bearer $SENSETIME_KEY" | jq -r '.data[].id'
随后用列表里的 id 发一次最小请求
curl -s https://api.sensenova.cn/v1/llm/chat-completions -H "Authorization: Bearer $SENSETIME_KEY" -H "Content-Type: application/json" -d '{"model":"SenseChat-5","messages":[{"role":"user","content":"hi"}]}'
接着在控制台提交开通申请并记录工单号
python -c "print('提交模型开通工单', 'SenseChat-5')"
等前面都确认过,再开通后用新会话复验并抓响应码
curl -s -o /dev/null -w '%{http_code}\n' https://api.sensenova.cn/v1/llm/chat-completions -H "Authorization: Bearer $SENSETIME_KEY" -d '{"model":"SenseChat-5","messages":[{"role":"user","content":"hi"}]}'
怎么算真的好了,看的是同一批现象。开通后同一请求返回 200,模型列表里出现 SenseChat-5,错误码不再是 400。
账号能登录控制台不代表接口有权限,模型卡片和接口授权是两套开关。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
