为 AI 应用打造安全屏障:基于 Dify 的完备实践

打印 上一主题 下一主题

主题 1942|帖子 1942|积分 5826

配景先容

2025 年是大模子应用爆发的一年。从年初的 DeepSeek 吸引大量开辟者部署大模子产品,到 Manus 和 MCP 等 Agent 方案连续引发关注,行业内掀起了一股打造爆款大模子应用的热潮。
然而,在这股热潮中,大模子的安全性问题往往被忽视。事实上,AI 应用的安全性是实现完备大模子应用的关键环节。2024 年的一篇文章 Building A Generative AI Platform 中,曾先容过大模子应用的完备架构:

其中,安全模块主要包罗输入围栏(Input guardrails)和输出围栏(Output guardrails)。尽管文章提到了安全机制,但未提供具体的实现方案。在本文中,我们将基于当前盛行的大模子应用平台 Dify,探索并实践一套完备的安全性解决方案。我们将从简单方案入手,徐徐扩展到更符合生产环境需求的实现。
安全性方案

为了实现文本内容的安全性检测,我们可以根据实现成本从低到高,选择以下三种方案:

  • 基于关键词与规则的审查:通过维护敏感词库并利用正则表达式或文本匹配算法进行检测。此方案实现简单、服从高,但正确率较低。
  • 基于呆板学习的内容审核:利用现有审核模子或训练独立模子,尽管实现复杂,但可以显著提升正确率。
  • 基于人机联合的审核机制:人工智能审核大概存在遗漏,尤其是暗昧边界问题,人工审核能够确保终极的正确性。
人机联合的审核更多体现在工程设计上,因此本文主要聚焦于前两种方案的实践与落地。
方案实践

在实践过程中,我们按照成本从低到高的顺序展开,先利用内置方案,再徐徐扩展到自界说方案。
基于内置方案的实践

Dify 提供了两种开箱即用的安全性方案:基于关键词的审查和基于 OpenAI 的内容审核。这些功能可以在平台的功能页面直接启用:

关键词方案
关键词审查是最简单的入门方案。通过配置关键词库和预设输入输出的响应内容,即可快速上手。
实际测试表明,关键词功能符合预期,但在生产环境中存在以下限制:


  • 默认关键词只能通过网页端配置,动态更新受限。
  • 关键词数量限制为 100 个,难以满足生产需求。
OpenAI 审核方案
基于 OpenAI 的审核方案属于呆板学习内容审核的范畴。然而,在国内环境中利用此方案存在较大停滞。此外,国内外审核政策差异较大,若要落地生产环境,仍需自界说实现。
基于自界说拓展的方案选型

Dify 考虑到内置方案的局限性,提供了两种自界说拓展方式:


  • API 扩展:通过部署独立的审核服务并提供 API 接口,灵活控制审核逻辑。但此方案必要额外维护服务,增加成本。
  • 代码扩展:直接在 Dify 的代码仓库中实现自界说审核逻辑,无需额外部署,且支持灵活的前端配置。
API 扩展
API 扩展的实现较为简单,只需遵循 官方文档 的 API 请求参数规范即可。但维护独立服务的成本较高,得当对灵活性要求较高的场景。
代码扩展
代码扩展无需额外部署,且能无缝嵌入现有应用中。通过遵循 官方实现规范,可以实现灵活的前端配置选项,效果如下:

基于代码扩展的实践

在实现自界说方案时,我们选择关键词库与大模子联合的方案。关键词过滤服从高,可快速拦截违规内容;对于漏网之鱼,再通过大模子进行二次审核,兼顾服从与成本。
考虑到 Dify 应用中通常已部署大模子,我们优先复用现有模子,避免额外部署成本。同时,为满足差别场景需求,可提供纯关键词审核的选项。
实现步骤
1、 初始化目录
在 Dify 项目的 api/core/moderation 下创建目录和文件:
  1. api/core/moderation
  2.              ├── custom
  3.                  └── custom.py
  4.                  └── schema.json
复制代码
2、 添加前端组件界说文件
在 schema.json 中界说前端配置项,例如:
  1. {
  2.     "label": {
  3.         "en-US": "Custom Moderation",
  4.         "zh-Hans": "自定义"
  5.     },
  6.     "form_schema": [
  7.         {
  8.             "type": "select",
  9.             "label": {
  10.                 "en-US": "Moderation Type",
  11.                 "zh-Hans": "检测类型"
  12.             },
  13.             "variable": "moderation_type",
  14.             "required": true,
  15.             "options": [
  16.                 {
  17.                     "label": {
  18.                         "en-US": "Keyword",
  19.                         "zh-Hans": "关键词"
  20.                     },
  21.                     "value": "Keyword"
  22.                 },
  23.                 {
  24.                     "label": {
  25.                         "en-US": "Keyword & LLM",
  26.                         "zh-Hans": "关键词 & 大模型"
  27.                     },
  28.                     "value": "Keyword & LLM"
  29.                 }
  30.             ],
  31.             "default": "Keyword"
  32.         },
  33.         {
  34.             "type": "paragraph",
  35.             "label": {
  36.                 "en-US": "Custom Keywords",
  37.                 "zh-Hans": "自定义关键词"
  38.             },
  39.             "variable": "custom_keywords",
  40.             "required": false,
  41.             "default": "",
  42.             "placeholder": "请输入额外的敏感关键词,每行一个"
  43.         }
  44.     ]
  45. }
复制代码
3、 添加实现类
实现类继承自内置 Moderation 类,重写 moderation_for_inputs 和 moderation_for_outputs 方法。关键词审核可参考官方已有的组件快速实现;大模子审核可通过 ModelManager 调用用户配置的默认大模子,这样可以更好的地适配 Dify 框架,避免用户必要额外配置安全围栏的大模子。
  1. from core.model_manager import ModelManager
  2. model_manager = ModelManager()
  3. model_instance = model_manager.get_default_model_instance(
  4.     tenant_id=self.tenant_id,
  5.     model_type=ModelType.LLM,
  6. )
  7. prompt_messages = [SystemPromptMessage(content=MODERATION_PROMPT), UserPromptMessage(content=text)]
  8. response = cast(
  9.     LLMResult,
  10.     model_instance.invoke_llm(
  11.         prompt_messages=prompt_messages,
  12.         model_parameters={"temperature": 0.01, "max_tokens": 2000},
  13.         stream=False,
  14.     ),
  15. )
复制代码
效果验证

完成实现后,通过 ChatGPT 生成一批测试问题验证效果。实际测试表明,大部分场景下均能正确拦截违规内容,但涉及儿童教育的问题国内的大模子没有触发拦截,这种环境也符合国情,基本上符合预期。



总结

本文基于 Dify 框架,实践了关键词审核与内容审核的完备实现方案。该方案以最低成本实现主动化审核能力,实用于生产环境。为提升审核效果,可联合人工审核进一步优化。感兴趣的读者不妨亲自实践一下。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表