游乐游手机版
首页/AI热点日报/热点详情

Dify敏感词过滤设置教程:内容安全审查

类型:热点整理2026-06-12
在Dify工作流前端设置Python节点进行敏感词检测,采用关键词黑名单、正则匹配与白名单例外策略。配置审计日志增强,结合置信度判断与高危词熔断,实现内容安全闭环,防止上下文污染与监管风险。

在Dify工作流中,建议将敏感词过滤安排在流程的最前端执行——核心机制是:在用户输入内容抵达大模型之前,先行完成审查与拦截。为何需要如此前置?若大模型直接处理了包含违规意图、违法信息或高危业务术语的用户输入,后续拦截将难以消除已发生的上下文污染、越狱响应或隐私泄露风险,更可能引发监管处罚。

启用前置敏感词检测节点

配置流程清晰直观:登录Dify控制台,进入目标应用,点击「工作流编排」,然后在「开始节点」之后拖入一个「Python代码节点」。将以下标准过滤器代码粘贴至该节点中,并确保词表路径与实际存放位置一致。

from dify_sensitive import SensitiveFilter
filter_engine = SensitiveFilter(
  wordlist_path="/app/config/finance_keywords.txt",
  enable_regex=True,
  regex_patterns=[r"年化收益率.*?超过d+%", r"保本保息", r"1[3-9]d{9}"]
)
if filter_engine.contains_sensitive($inputs.query):
  raise ValueError("触发监管关键词熔断:禁止输出")

重要前提:finance_keywords.txt 必须事先上传至Dify应用的 /config 目录,且文件编码需为 UTF-8 无BOM格式,否则将导致运行报错。

配置多模式识别策略

敏感词识别需结合多种策略,实现多维度防护。以下三种方式配合使用最为稳妥。

策略一:关键词黑名单——适用于业务中明确禁止的固定词汇,例如“代客理财”、“配资”、“杠杆”。在Python节点中定义列表,通过 any(kw in $inputs.query for kw in forbidden) 实现快速判断,这种方式简洁高效。

策略二:正则表达式匹配——专用于识别结构化敏感信息,如身份证号。使用 import re; re.search(r"d{17}[dXx]", $inputs.query) 可匹配如“11010119900307291X”的完整号码。正则匹配的抗干扰能力优于字符串比对,能有效识别变体表述。

策略三:白名单例外机制——避免误伤正常业务用词。例如,用户提及“苹果手机”属于正常交流,但单独出现“苹果”可能被视为敏感指向。此时需补充逻辑判断:if "苹果" in $inputs.query and "手机" not in $inputs.query: 则触发拦截。如此可避免业务常用词被误判为敏感内容。

绑定审计日志与熔断响应

检测配置完成后,还需构建闭环链路,确保问题可追溯、可阻断、可告警。

步骤一:启用审计日志增强模式
进入应用设置,选择「高级配置」,勾选「启用审计日志增强」后保存。此操作虽简单,但能有效支撑事后追溯,建议务必开启。

步骤二:配置Level-1知识边界熔断
在RAG检索节点后添加「条件判断」节点,设置规则:当 $retrieval_results.confidence_mean < 0.35 时,跳转至「返回标准话术」节点。话术示例为:“当前问题超出我的知识范围,已为您转接人工客服。”该机制用于应对超出知识边界的问题。

步骤三:配置Level-2高危词熔断
在敏感词检测节点内部增加判断逻辑:若 if any(w in $inputs.query for w in ["代客理财", "配资", "杠杆"]) and not $retrieval_results.chunks: 则抛出异常并自动向风控看板推送告警。此配置流程看似复杂,实则只需开启日志开关并串联条件分支。需特别注意的是,若跳过Level-1置信度判断,系统将无法区分“知识不足”与“检索失败”场景,可能导致大量正常提问被误判为风险事件,反而引发新的运营问题。

来源:https://www.php.cn/faq/2627549.html?uid=1589237

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。