Guardrails项目入门指南:构建安全的LLM应用验证层
guardrails 项目地址: https://gitcode.com/gh_mirrors/gua/guardrails
什么是Guardrails
Guardrails是一个为大型语言模型(LLM)应用提供安全验证层的开源工具。它允许开发者为LLM的输入和输出设置验证规则,确保模型生成的内容符合预期格式、业务规则和安全要求。通过Guardrails,开发者可以:
- 验证LLM输入的有效性
- 确保输出符合特定数据结构
- 防止生成有害或不适当内容
- 实施业务规则验证
安装与配置
基础安装
使用pip包管理器可以轻松安装Guardrails:
pip install guardrails-ai
配置Guardrails Hub
Guardrails Hub是一个预构建验证规则的集合库,安装后需要进行基础配置:
guardrails configure
构建输入输出验证层
1. 安装预置验证规则
Guardrails Hub提供了多种即用型验证规则,例如正则表达式匹配:
guardrails hub install hub://guardrails/regex_match
2. 创建基础验证器
from guardrails.hub import RegexMatch
from guardrails import Guard
# 初始化验证器,只允许首字母大写的单词
val = Guard().use(
RegexMatch(regex="^[A-Z][a-z]*$")
)
# 验证通过示例
val.parse("Caesar")
# 验证失败示例
val.parse("Caesar is a great leader")
3. 组合多个验证规则
实际应用中通常需要组合多种验证规则:
from guardrails.hub import RegexMatch, ValidLength
from guardrails import Guard
guard = Guard().use(
RegexMatch(regex="^[A-Z][a-z]*$"), # 格式验证
ValidLength(min=1, max=32) # 长度验证
)
guard.parse("Caesar") # 验证通过
guard.parse("A"*33) # 验证失败(超长)
结构化数据生成
Guardrails可以与Pydantic结合,确保LLM输出符合预定义的数据结构。
1. 定义数据模型
from pydantic import BaseModel, Field
class Pet(BaseModel):
pet_type: str = Field(description="宠物种类")
name: str = Field(description="宠物名字")
2. 创建结构化验证器
from guardrails import Guard
import openai
prompt = """
我应该养什么宠物以及给它取什么名字?
${gr.complete_json_suffix_v2}
"""
guard = Guard.from_pydantic(output_class=Pet, prompt=prompt)
validated_output, *rest = guard(
llm_api=openai.completions.create,
engine="gpt-3.5-turbo-instruct"
)
print(validated_output)
输出示例
{
"pet_type": "猫",
"name": "雪球"
}
高级应用场景
业务规则验证
除了基础验证,Guardrails还可实现复杂业务规则:
from guardrails.hub import CompetitorCheck
guard = Guard().use(
CompetitorCheck(competitors=["竞品A", "竞品B"])
)
guard.parse("我们的产品优于竞品A") # 触发竞争品牌警告
内容安全过滤
from guardrails.hub import ToxicLanguage
guard = Guard().use(
ToxicLanguage() # 自动检测并过滤有害内容
)
guard.parse("这是一些攻击性言论") # 触发内容安全警告
最佳实践建议
- 分层验证:先进行基础格式验证,再进行业务规则验证
- 渐进式严格:开发初期使用较宽松规则,逐步收紧
- 错误处理:为验证失败设计友好的用户反馈
- 性能考量:复杂验证规则可能增加延迟,需适当平衡
Guardrails为LLM应用提供了强大的安全防护能力,通过合理配置可以显著提升应用的可靠性和安全性。开发者可以根据实际需求组合不同的验证规则,构建适合自己业务的验证层。
guardrails 项目地址: https://gitcode.com/gh_mirrors/gua/guardrails
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考