glm-4-plus 接口返回 1301,原文内容审核不通过,同一段用户输入在测试环境能过,线上偶发,日志里没有记录被拦的是哪一句。
把日志和配置对完,能解释这个现象的基本就这几处。输入里含敏感词,平台侧做了前置审核;模型输出被后置审核拦下,报错却挂在请求上;system 提示里的示例文本带违规样例;账号未做企业认证,审核阈值更严。
第一件事是把请求体按句拆开逐条发送定位命中句
python -c "import json;t=open('input.txt').read();print([s for s in t.split('。') if s])"
接着关掉流式再复现,确认是输入还是输出被拦
curl -s https://open.bigmodel.cn/api/paas/v4/chat/completions -H "Authorization: Bearer $ZHIPU_KEY" -d '{"model":"glm-4-plus","stream":false,"messages":[{"role":"user","content":"测试文本"}]}'
然后对疑似句子做同义替换后再试
python -c "print(open('input.txt').read().replace('最低价','优惠价'))"
末了在业务侧对 1301 做兜底话术而不是抛错
python -c "print({'code':1301,'reply':'换个说法再问一次'})"
别只看报错消失,验证要多做一步。同一句输入不再触发 1301,日志里能定位到具体命中的那段文本,前端展示兜底话术。
提醒一点。审核是输入输出两头都查,只改用户输入不一定有效,system 里的示例也要过一遍。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
