客服对话改写任务里约百分之三的请求返回 400,code 为 data_inspection_failed,提示输入或输出内容未通过内容审核,但同样的文本手工发又能成功。
原因不止一个,得分开看。用户原文里包含被判定为敏感的表达;模型输出在生成过程中被审核拦下;多轮历史里保留了上一轮的违规原文;模板拼接时把内部备注字段也一起送进了提示词。
先把输入按句二分,定位到具体触发的那一句
python bisect_text.py --input case.txt --api dashscope
请求里打开审核结果返回,看是输入还是输出触发
payload['parameters'] = {'result_format': 'message'}
接着对命中片段做脱敏改写后重试并留样本
python rewrite.py --rule mask_phone,filter_words
上线前用历史样本跑一次回归
python regress.py --cases 500 --out report.csv
改完先别撤,确认这几项。同一批请求全部返回 200,日志里能找到被拦的原文片段,改写规则上线后拦截率降到百分之一以下。
流式输出时审核可能在中途某个 chunk 才触发,前面已经吐出的文本会被前端当真,需要在前端也做一次兜底替换,否则用户仍会看到违规内容。报错文案容易误导,真正的原因往往在相邻那一层的日志里。