护栏
使用安全约束验证内容
护栏块通过多种验证类型检查内容,验证并保护您的 AI 工作流。在内容进入工作流之前,确保数据质量、防止幻觉、检测 PII 并强制实施格式要求。
要验证的内容*
输入要验证的内容
验证类型*
有效 JSON
正则表达式模式*
例如,^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
知识库*
选择知识库
模型*
输入或选择模型...
置信度
0
检索的块数
0
API 密钥*
••••••••
要检测的 PII 类型
要检测的 PII 类型
操作*
阻止请求
语言
英语
概述
Guardrails 区块让你可以:
验证 JSON 结构:确保 LLM 输出在解析前是有效的 JSON
匹配正则表达式模式:验证内容是否符合特定格式(电子邮件、电话号码、URL 等)
检测幻觉:使用 RAG + LLM 评分,对照知识库内容验证 AI 输出
检测 PII:识别并可选地屏蔽 受支持的实体类型中的个人身份信息
验证类型
JSON 验证
验证内容是否为格式正确的 JSON。非常适合确保结构化 LLM 输出能够被安全解析。
使用场景:
- 在解析前验证 Agent 区块返回的 JSON 响应
- 确保 API 负载格式正确
- 检查结构化数据的完整性
输出:
passed:如果 JSON 有效,则为true,否则为falseerror:验证失败时的错误消息(例如“无效 JSON:意外的标记...”)
正则表达式验证
检查内容是否匹配指定的正则表达式模式。
使用场景:
- 验证电子邮件地址
- 检查电话号码格式
- 验证 URL 或自定义标识符
- 强制特定文本模式
配置:
- 正则表达式模式:用于匹配的正则表达式(例如,用于电子邮件的
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$)
输出:
passed:如果内容匹配模式,则为true,否则为falseerror:验证失败时的错误消息
幻觉检测
使用检索增强生成(RAG)与 LLM 评分,检测 AI 生成内容何时与知识库矛盾或缺乏依据。
工作原理:
- 查询知识库以获取相关上下文
- 将 AI 输出和检索到的上下文一并发送给 LLM
- LLM 分配置信度分数(0-10 分)
- 0 = 完全幻觉(完全无依据)
- 10 = 完全有依据(完全由知识库支持)
- 如果分数 ≥ 阈值(默认:3),则验证通过
配置:
- 知识库:从现有知识库中选择
- 模型:选择用于评分的 LLM(需要较强推理能力 - 推荐 GPT-4o、Claude 3.7 Sonnet)
- API 密钥:所选 LLM 提供商的身份验证(托管/Ollama 模型会自动隐藏)
- 置信度阈值:通过的最低分数(0-10,默认值:3)
- Top K(高级):要检索的知识库分块数量(默认值:5)
输出:
passed:如果置信度分数 ≥ 阈值,则为truescore:置信度分数(0-10)reasoning:LLM 对分数的解释error:验证失败时的错误消息
使用场景:
- 根据文档验证 Agent 响应
- 确保客户支持答案事实准确
- 验证生成的内容与源材料匹配
- RAG 应用的质量控制
PII 检测
使用 Microsoft Presidio 检测个人身份信息。支持多个国家和语言的 受支持的实体类型。
工作原理:
- 使用模式匹配和 NLP 扫描内容中的 PII 实体
- 返回检测到的实体及其位置和置信度分数
- 可选地在输出中屏蔽检测到的 PII
配置:
- 要检测的 PII 类型:通过模态选择器从分组类别中选择
- 通用:人名、电子邮件、电话、信用卡、IP 地址等
- 美国:SSN、驾照、护照等
- 英国:NHS 号码、国民保险号码
- 西班牙:NIF、NIE、CIF
- 意大利:税号、驾照、增值税号
- 波兰:PESEL、NIP、REGON
- 新加坡:NRIC/FIN、UEN
- 澳大利亚:ABN、ACN、TFN、Medicare
- 印度:Aadhaar、PAN、护照、选民号码
- 模式:
- Block:检测 PII,发现时将
passed设为false(默认)。请连接 Condition 块来执行相应分支。 - 屏蔽:用屏蔽值替换检测到的 PII
- Block:检测 PII,发现时将
- 语言:检测语言(默认:英语)
输出:
passed:Block 模式检测到所选 PII 时为false;Mask 模式在屏蔽后为true,即使检测到了实体detectedEntities:检测到的 PII 数组,包含类型、位置和置信度maskedText:已掩码 PII 的内容(仅当 mode = "Mask" 时)error:校验失败时的错误消息
使用场景:
- 拦截包含敏感个人信息的内容
- 在记录日志或存储数据前掩码 PII
- 符合 GDPR、HIPAA 及其他隐私法规
- 在处理前清理用户输入
配置
待校验的内容
待校验的输入内容。通常来自:
- Agent 区块输出:
<agent.content> - 函数区块结果:
<function.result> - API 响应:
<api.data> - 任何其他区块输出
校验类型
从四种校验类型中选择:
- 有效 JSON:检查内容是否为格式正确的 JSON
- 正则匹配:验证内容是否匹配正则表达式
- 幻觉检查:结合 LLM 评分,对照知识库进行校验
- PII 检测:检测并可选择掩码个人身份信息
输出
所有校验类型均返回:
<guardrails.passed>:布尔值,指示校验是否通过<guardrails.validationType>:所执行的校验类型<guardrails.input>:被校验的原始输入<guardrails.error>:校验失败时的错误消息(可选)
按类型划分的额外输出:
幻觉检查:
<guardrails.score>:置信度评分(0-10)<guardrails.reasoning>:LLM 的说明
PII 检测:
<guardrails.detectedEntities>:检测到的 PII 实体数组<guardrails.maskedText>:已掩码 PII 的内容(若 mode = "Mask")
示例使用场景
解析前校验 JSON
场景:确保 Agent 输出为有效的 JSON
- Agent 生成结构化的 JSON 响应
- Guardrails 校验 JSON 格式
- 条件区块检查
<guardrails.passed> - 若通过 → 解析并使用数据;若失败 → 重试或处理错误
防止幻觉
场景:校验客户支持回复
- Agent 生成对客户问题的回复
- Guardrails 对照支持文档知识库进行校验
- 如果置信度评分 ≥ 3 → 发送回复
- 如果置信度评分 < 3 → 标记为人工审核
拦截用户输入中的 PII
场景:清理用户提交的内容
- 用户提交包含文本内容的表单
- Guardrails 检测到 PII(邮箱、电话号码、SSN 等)
- 如果检测到 PII → 拒绝提交或对敏感数据做掩码处理
- 如果未检测到 PII → 正常处理
校验邮箱格式
场景:检查邮箱地址格式
- Agent 从文本中提取邮箱
- Guardrails 使用正则表达式进行校验
- 如果有效 → 使用该邮箱发送通知
- 如果无效 → 要求更正
最佳实践
- 与条件块组合使用:使用
<guardrails.passed>根据校验结果对工作流逻辑进行分支 - 解析前先做 JSON 校验:在尝试解析 LLM 输出之前,始终先校验 JSON 结构
- 选择合适的 PII 类型:只选择与你的使用场景相关的 PII 实体类型,以获得更好的性能
- 设置合理的置信度阈值:对于幻觉检测,根据你的准确率要求调整阈值(越高越严格)
- 使用更强的模型进行幻觉检测:GPT-4o 或 Claude 3.7 Sonnet 能提供更准确的置信度评分
- 记录日志时掩码 PII:在需要记录或存储可能包含 PII 的内容时,使用 "Mask" 模式
- 测试正则表达式:在部署到生产环境之前,彻底校验正则表达式
- 监控校验失败:跟踪
<guardrails.error>消息,以识别常见的校验问题
护栏校验会在你的工作流中同步执行。如果延迟至关重要,进行幻觉检测时请选择更快的模型(如 GPT-4o-mini)。