摘要:本文介绍如何在 Dify 中部署 Azure AI Content Safety Container Plugin。该插件支持文本与图像的多层内容审核、自定义黑名单及本地化容器运行,帮助开发者构建安全合规的 AI 应用。文中详细说明了前置条件、计费参数、主机要求及在 Ubuntu 24.04 上的安装步骤。
使用 Azure AI Content Safety Container Plugin 在 Dify 上构建安全的 AI 应用
Azure AI Content Safety Container Plugin现已上线 Dify Plugin Marketplace!这款内容审核工具能自动检测并过滤用户输入和 AI 输出中的有害内容,确保您的应用程序既安全又合规。
通过此插件,Dify 用户可以享受以下功能:
* 实时审核:在工作流中自动检测文本和图片中的不当内容。
* 多层防护:涵盖仇恨言论、暴力、色情、自残等多种违规类型。
* 灵活部署:在本地容器中运行,满足隐私和合规性需求。
* 自定义过滤:使用黑名单(BlockList)精确控制需要拦截的内容。
无论您是在构建聊天机器人、内容生成器还是社交平台,此插件都能为您的 AI 应用提供可靠的安全保护。
1. Azure AI Content Safety
1.1 概述
Azure AI Content Safety 是一项 AI 服务,用于检测应用程序和服务中由用户或 AI 生成的有害内容。它包含文本和图像 API,帮助您识别违规材料。
1.2 危害类别
Content Safety 将不当内容分为四个主要类别。分类支持多标签,例如,一段文本可能同时被标记为“色情”和“暴力”。
1.3 严重程度等级
服务对每个危害类别都会给出一个严重程度评级。该评级旨在反映展示被标记内容的后果严重性。
- 文本:当前版本的文本模型支持完整的 0-7 级严重程度量表。分类器会检测该范围内的所有级别。如果用户指定,它可以返回修剪后的刻度(0, 2, 4, 6);每两个相邻等级映射为一个单一等级。
- 图像:当前版本的图像模型仅支持修剪后的完整 0-7 级严重程度量表。分类器只返回 0、2、4 和 6 这四个级别。
- 带文本的图像(多模态):当前版本的多模态模型支持完整的 0-7 级严重程度量表。如果用户指定,它可以返回修剪后的刻度(0, 2, 4, 6)。
1.4 Azure AI Content Safety Containers
容器允许您在自己的环境中使用 Azure AI Content Safety 的部分功能。借助内容安全容器,您可以构建一种兼顾强大云端能力和边缘本地性的应用架构。容器有助于您满足特定的安全和数据治理要求。
下表列出了 Microsoft Container Registry (MCR) 中可用的内容安全容器、各容器支持的功能以及最新版本:
| 容器名称 | 主要功能 | 最新版本 |
|---|---|---|
| (注:原文此处为表格占位,具体列表请参考官方文档) | - | v0.0.x |
1.5 定价
Azure AI Content Safety 提供两种类型的 SKU:
- Standard SKU:根据实际的文本和图像请求数量收费。
- Commitment SKU:通过容器完全本地部署,不与互联网交互,基于承诺用量进行计费。
此外,对于 Standard SKU,也支持容器的本地化部署;但这需要与云端的 Billing Endpoint(计费等价点)互动以定期同步计费数据。
1.6 Azure AI Content Safety Containers for Dify Plugin
Azure AI Content Safety Container 现已打包为 Dify 插件,并正式上架 Dify Marketplace。该插件提供针对 TEXT 和 IMAGE 类型的内容审核能力。最新版本 v0.0.2 包含以下功能:
- 统一审核:在一个工具中分析文本和图片。
- 自定义配置:支持自定义 API 端点和可选的身份验证头(Authentication Headers)。
- 文本黑名单:利用黑名单更精确地过滤文本内容。
- 合并结果:获取一个汇总了文本和图像分析结果的单一结构化输出。
- 明确决策:输出清晰的
ALLOW(允许)或DENY(拒绝)检查结果。 - 详细且格式化的输出:提供格式化后的违规详情。
- 原始数据访问:包含带有原始 JSON 的
RawResults输出,适用于高级用例。
2. 安装和运行容器
2.1 前置条件
在使用内容安全容器之前,必须满足以下要求:
- Azure 订阅。
- 一个具有 Standard (S) 定价层的 Content Safety 服务资源。
2.2 计费参数
内容安全容器的许可证不允许在未连接 Azure 进行计量的情况下运行。您必须配置容器以始终与计量服务通信并传输计费信息。
所有 Azure AI 容器都需要三个主要参数:
1. MsaAccountName(微软账户名称)
2. BillingEndpoint(计费端点 URL)
3. ApiKey(API 密钥)
此外,必须包含 Microsoft Software License Terms,且值设为 accept。对容器的查询将根据用于 ApiKey 参数的 Azure 资源的定价层进行收费。
当提供以下三个选项的有效值时,docker run 命令将启动容器:
* NOTE:容器大约每 10 到 15 分钟报告一次使用情况。如果容器在允许的时间窗口内未连接到 Azure,它将保持运行状态,但在计费端点恢复之前不会处理查询连接尝试会每隔 10-15 分钟重试 10 次。如果在 10 次尝试后仍无法连接到计费端点,容器将停止服务请求。
2.3 主机要求和建议
主机是运行 Docker 容器的基于 x64 的计算机。下表描述了内容安全容器的最低和推荐规格(适用于文本和图像容器):
- GPU:内容安全容器需要 NVIDIA CUDA 以获得最佳性能。该容器已在 CUDA 11.8 和 CUDA 12.6 上经过测试。这些容器的最低 GPU 要求是 NVIDIA T4,但为了获得最佳性能,建议使用 A100。
2.4 性能
即使使用相同的 GPU,性能也可能因 GPU 负载和环境的具体配置而波动。我们提供的基准数据应作为在您环境中部署内容安全容器时的参考点。为了最准确的评估,建议您在特定环境内进行测试。
- 文本分析性能:(此处应有图表或具体数据)
- 图像分析性能:(此处应有图表或具体数据)
2.5 安装步骤
NOTE: 以下所有步骤均在 Ubuntu 24.04 上执行,安全类型设置为 Trusted Launch(可信启动)虚拟机。
1. 安装 Docker
# 更新软件包列表
apt update
# 安装 docker.io
apt install -y docker.io
(注:原文代码块重复多次,此处保留核心命令)
2. 安装 NVIDIA 驱动
如果在创建 Azure VM 时将安全类型选择为 Trusted Launch(可信启动),则必须使用 Ubuntu 提供的官方 ubuntu-drivers 工具来安装 NVIDIA 驱动程序。否则,驱动程序将不会加载到内核中,系统将无法检测到 GPU 驱动。
# 检查是否启用了 Secure Boot
mokutil --sb-state
# 安装 ubuntu-drivers-common
apt update && apt install -y ubuntu-drivers-common
# 查看可用版本(针对服务器)
ubuntu-drivers list --gpgpu
# 安装驱动程序 (以 nvidia:570-server 为例)
ubuntu-drivers install --gpgpu nvidia:570-server
# 检查驱动版本
cat /proc/driver/nvidia/version
# 安装工具包
apt install -y nvidia-utils-570-server
# 验证安装
nvidia-smi
原文图片









