内容安全与审核
问题
如何对 AI 应用进行内容安全管控?输入和输出分别怎么处理?
答案
一、内容安全架构
二、输入安全
| 检测项 | 方法 | 工具 |
|---|---|---|
| Prompt 注入 | 分类器检测恶意指令 | Rebuff、LLM Guard |
| 有害内容 | 文本分类(暴力/色情等) | OpenAI Moderation API |
| PII 信息 | 正则 + NER 检测个人信息 | Presidio、spaCy |
| 越狱尝试 | 与已知越狱模式匹配 | 自定义规则 + 分类器 |
三、输出安全
| 检测项 | 方法 |
|---|---|
| 有害内容 | 分类器过滤暴力、歧视等内容 |
| PII 泄露 | 检测输出中是否包含个人信息 |
| 幻觉 | 与检索文档对比,检测未支撑的声明 |
| 代码安全 | 检测生成代码中的安全漏洞 |
四、Guardrails 框架
| 框架 | 特点 |
|---|---|
| NeMo Guardrails | NVIDIA 开源,Colang 定义对话规则 |
| Guardrails AI | Schema 验证 + 输出修正 |
| LLM Guard | 开源,输入输出双向检测 |
| OpenAI Moderation | API 调用,分类有害内容 |
五、分级策略
不同场景需要不同安全等级
- 高风险(医疗/法律/金融):严格过滤 + 人工审核 + 免责声明
- 中风险(客服/教育):自动过滤 + 采样人工审核
- 低风险(内部工具/创意写作):基础过滤 + 日志审计
常见面试问题
Q1: 如何设计 AI 应用的内容安全系统?
答案:
- 输入层:Prompt 注入检测 + 有害内容分类 + PII 脱敏
- 模型层:System Prompt 安全约束 + 对齐训练
- 输出层:有害内容过滤 + 幻觉检测 + PII 检测
- 运营层:日志记录 + 人工审核采样 + 持续优化
Q2: OpenAI Moderation API 如何使用?
答案:
const response = await openai.moderations.create({
input: userMessage,
});
const results = response.results[0];
if (results.flagged) {
// 内容被标记为有害
console.log('违规类别:', results.categories);
// { hate: false, violence: true, sexual: false, ... }
}
该 API 对所有 OpenAI 用户免费,支持检测仇恨、暴力、色情等类别。