这类问题我又碰上了一次。在 Windows 上用 requests 直连 MiniMax 的 chatcompletion_v2 接口,模型填 abab6.5s-chat,返回 1004 authentication failed,同一个 key 在控制台能查到,换官方 SDK 结果一样,报错体里只有 base_resp 里的 status_msg,没有任何字段名提示。

第一反应是「旧版接口要在查询参数里带 GroupId,缺了这一步鉴权直接失败」,验证下来不成立。

这类报错背后常见的原因有几处,逐个排除就行。key 建在另一个分组,接口域名绑的是国内分组而 key 属于海外分组;请求头把 Authorization 写成 Bearer 前缀,该接口只认裸 key;key 复制时带了尾部空格,服务端按含空格的字符串比对。

上来先打印请求头里 Authorization 的实际值确认有没有空格

python -c "import os;print(repr(os.getenv('MINIMAX_KEY')))"

去掉 Bearer 前缀用 curl 直连一次

curl https://api.minimax.chat/v1/text/chatcompletion_v2 -H "Authorization: $MINIMAX_KEY" -H "Content-Type: application/json" -d '{"model":"abab6.5s-chat","messages":[{"role":"user","content":"ping"}]}'

补上 GroupId 查询参数再试一次

curl "https://api.minimax.chat/v1/text/chatcompletion_v2?GroupId=$GROUP_ID" -H "Authorization: $MINIMAX_KEY" -d @body.json

等前面都确认过,再把验证通过的请求写成最小脚本固定下来

python check_minimax.py --model abab6.5s-chat

改完先别撤,确认这几项。返回体里 base_resp.status_code 是 0,reply 字段有正常文本,同一 key 换一台机器也不再报 1004。

提醒一点。这类国内接口的鉴权头和 OpenAI 不一样,抄示例代码最容易把 Bearer 带进去,先看文档里的 curl 写法比盯着 SDK 报错快。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189