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

2026-06-11阅读 0热度 0
如何在Dify中设置敏感词过滤(内容安全审查)

在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的置信度判断,系统将无法区分“模型不懂”与“检索失败”,导致大量正常提问被错误归类为风险事件,反而引发新的运维难题。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策