生成内容过滤是什么
输出过滤是最后一道闸:用分类器加规则双通道扫描生成内容,命中后按级别处置——高风险直接拦截并返回安全兜底话术,中风险改写后输出,低风险或疑似误触可以做提示或原样放行并纳入抽检。同时必须设计申诉与误报反馈回路,否则一刀切会把正常业务拦死。上线前用历史流量做影子测试是必要步骤:直接全量开启时,误杀率往往高到业务无法接受。
基本信息
| 检测方式 | 语义分类器加关键词正则兜底 |
|---|---|
| 处置动作 | 拦截、改写、降级为安全回复、转人工 |
| 误报治理 | 记录命中原因,提供申诉与人工复核 |
| 留痕要求 | 过滤事件进审计日志,支持统计与取证 |
| 上线方式 | 先用历史流量影子测试再逐步放量 |
| 兜底策略 | 分类器异常时降级放行并告警,避免全量阻塞 |
典型使用场景
- 面向公众的内容产品:发布前的合规扫描
- 客服与助手:防止输出不当承诺或敏感表述
- 多语言产品:各语种分别维护规则与阈值
- 人工复核队列:高风险命中转人工判断
- 规则调优:用命中样本统计误报与漏报
过滤处置逻辑
过滤处置逻辑
def moderate_output(text, ctx):
hits = classifier(text) + rules(text) # 语义 + 关键词双通道
if not hits:
return text
if any(h.severity == "high" for h in hits):
log_event(hits) # 高风险命中必须留痕
return SAFE_FALLBACK # 返回安全兜底话术
if any(h.severity == "mid" for h in hits):
log_event(hits)
return soften(text, hits) # 中风险改写后输出
sample_for_review(text, hits) # 疑似误报进抽检池
return text命中级别与处置
| 级别 | 示例 | 处置动作 |
|---|---|---|
| 高风险 | 明显违规内容 | 拦截并返回安全兜底话术 |
| 中风险 | 边界表述 | 改写后输出并记录事件 |
| 低风险或疑似 | 误触关键字 | 加提示或原样输出,纳入抽检 |
| 系统异常 | 分类器超时或报错 | 降级放行并告警,避免全量阻塞 |
过滤规则上线前先跑影子测试:直接全量开启时误杀率通常偏高,业务侧感受最直接的是正常问题被拒答。
只靠关键词抓不住变体与语义违规,只靠分类器又容易漏掉明确禁词;两者叠加并分别统计命中来源,才能持续调优。