Guardrails 开源项目教程
1. 项目介绍
Guardrails 是一个 Python 框架,旨在通过执行两个关键功能来帮助构建可靠的 AI 应用:
- 输入/输出防护:Guardrails 在应用中运行输入/输出防护,检测、量化并减轻特定类型风险的存在。
- 结构化数据生成:Guardrails 帮助从大型语言模型(LLMs)生成结构化数据。
Guardrails Hub 是一个包含预构建的特定类型风险度量(称为“验证器”)的集合。多个验证器可以组合成输入和输出防护,拦截 LLMs 的输入和输出。
2. 项目快速启动
安装
首先,通过 pip 安装 Guardrails:
pip install guardrails-ai
配置
配置 Guardrails:
guardrails configure
创建防护
从 Guardrails Hub 安装一个防护:
guardrails hub install hub://guardrails/regex_match
创建一个防护实例:
from guardrails import Guard
from guardrails.hub import RegexMatch
guard = Guard()
guard.use(RegexMatch, regex=r"\(\d{3}\)-\d{3}-\d{4}", on_fail=OnFailAction.EXCEPTION)
验证输入
使用防护验证输入:
try:
guard.validate("123-456-7890") # 防护通过
guard.validate("1234-789-0000") # 防护失败
except Exception as e:
print(e)
输出:
Validation failed for field with errors: Result must match \(\d{3}\)-\d{3}-\d{4}
3. 应用案例和最佳实践
案例1:电话号码格式验证
在用户输入电话号码时,使用 Guardrails 的正则表达式验证器确保输入的格式正确。
guard.validate("123-456-7890") # 通过
guard.validate("1234-789-0000") # 失败
案例2:多防护组合
在复杂的应用场景中,可以将多个防护组合在一起,确保输入和输出的多重验证。
guard.use(RegexMatch, regex=r"\(\d{3}\)-\d{3}-\d{4}", on_fail=OnFailAction.EXCEPTION)
guard.use(TwoWordsValidator, on_fail=OnFailAction.WARNING)
4. 典型生态项目
1. OpenAI SDK
Guardrails 可以与 OpenAI SDK 集成,通过设置 use_server
参数,将防护应用于 OpenAI 的 API 调用。
import guardrails as gr
gr.settings.use_server = True
guard = gr.Guard(name='two-word-guard')
guard.validate('this is more than two words')
2. 自定义验证器
开发者可以根据业务需求,自定义验证器并将其集成到 Guardrails 中,实现更灵活的风险控制。
from guardrails import Validator
class CustomValidator(Validator):
def validate(self, input):
# 自定义验证逻辑
pass
guard.use(CustomValidator, on_fail=OnFailAction.EXCEPTION)
通过以上步骤,您可以快速上手并应用 Guardrails 框架,确保 AI 应用的可靠性和安全性。