Guardrails:打造可靠AI应用的强大工具
Guardrails是一个强大的Python框架,旨在帮助开发者构建更加可靠的AI应用。它通过两个关键功能实现这一目标:
核心功能
-
输入/输出守卫:Guardrails在应用程序中运行输入/输出守卫,用于检测、量化和缓解特定类型的风险。开发者可以在Guardrails Hub上找到完整的风险套件。
-
结构化数据生成:Guardrails帮助开发者从大型语言模型(LLMs)生成结构化数据,使得AI输出更加可控和可预测。
Guardrails Hub:预构建验证器的宝库
Guardrails Hub是一个包含预构建验证器的集合。这些验证器专门用于衡量特定类型的风险。开发者可以将多个验证器组合成输入和输出守卫,以拦截LLMs的输入和输出。Guardrails Hub提供了全面的验证器列表和详细文档,方便开发者选择和使用。
安装和配置
安装Guardrails非常简单,只需通过pip命令即可完成:
pip install guardrails-ai
安装完成后,开发者需要下载并配置Guardrails Hub CLI:
guardrails configure
使用示例
创建输入和输出守卫
- 从Guardrails Hub安装所需的守卫:
guardrails hub install hub://guardrails/regex_match
- 创建和使用守卫:
from guardrails import Guard, OnFailAction
from guardrails.hub import RegexMatch
guard = Guard().use(
RegexMatch, regex="\(?\d{3}\)?-? *\d{3}-? *-?\d{4}", on_fail=OnFailAction.EXCEPTION
)
guard.validate("123-456-7890") # 通过验证
生成结构化数据
Guardrails可以帮助开发者从LLMs生成结构化数据。以下是一个生成宠物信息的示例:
from pydantic import BaseModel, Field
from guardrails import Guard
import openai
class Pet(BaseModel):
pet_type: str = Field(description="Species of pet")
name: str = Field(description="a unique pet name")
prompt = """
What kind of pet should I get and what should I name it?
${gr.complete_json_suffix_v2}
"""
guard = Guard.for_pydantic(output_class=Pet, prompt=prompt)
raw_output, validated_output, *rest = guard(
llm_api=openai.completions.create,
engine="gpt-3.5-turbo-instruct"
)
print(validated_output)
Guardrails服务器
Guardrails可以作为独立服务运行,通过Flask提供REST API接口。这种方式简化了Guardrails驱动的应用程序的开发和部署过程。开发者可以通过简单的命令启动开发服务器,并使用API与之交互。
广泛兼容性
Guardrails支持各种专有和开源的LLMs,并提供了详细的指南说明如何与不同的LLM集成。此外,开发者还可以创建自定义验证器并贡献给Guardrails Hub。
社区支持
Guardrails拥有活跃的社区支持。开发者可以通过Discord或Twitter获取帮助,参与讨论,或贡献代码。项目欢迎各种形式的贡献,包括问题报告、功能请求和代码提交。
通过Guardrails,开发者可以更轻松地构建安全、可靠的AI应用,有效管理AI输出的风险,并提高应用程序的整体质量。