1.2 Guardrails AIとは
What is Guardrails AI?
概要
Guardrails AIは、LLMの出力を構造化・検証・修正するためのPythonフレームワークである。2023年にオープンソースとして公開され、LLMアプリケーション開発における出力品質管理の標準的なソリューションとして注目されている。
Guardrails AIの位置づけ
LLMの「入力」を最適化するプロンプトエンジニアリングに対し、Guardrails AIは「出力」の品質を担保する。両者は補完的な関係にある。
基本的なアプローチ
Guardrails AIは以下の3ステップで出力品質を担保する。
1. スキーマ定義
期待する出力構造をPydanticモデルまたはRAIL(XML形式)で定義する。
from pydantic import BaseModel, Field class UserProfile(BaseModel): name: str = Field(description="ユーザー名") age: int = Field(ge=0, le=150, description="年齢") email: str = Field(description="メールアドレス")
2. Guard作成とLLM呼び出し
定義したスキーマを元にGuardオブジェクトを作成し、LLM呼び出しをラップする。
from guardrails import Guard guard = Guard.from_pydantic(UserProfile) result = guard( llm_api=openai.chat.completions.create, model="gpt-4", prompt="以下のテキストからユーザー情報を抽出: {text}" )
3. バリデーションと修正
LLMの出力がスキーマに適合するか検証し、失敗した場合は自動的に再生成を依頼する。
# resultには検証済みの構造化データが格納される print(result.validated_output) # {'name': '田中太郎', 'age': 30, 'email': 'tanaka@example.com'}
主要コンポーネント
| コンポーネント | 役割 |
|---|---|
| Guard | LLM呼び出しをラップし、入出力の検証・修正を制御するメインオブジェクト |
| Validator | 出力の各フィールドに対する検証ルール(型、範囲、正規表現等) |
| RAIL | スキーマをXML形式で定義するためのDSL(Domain Specific Language) |
| Reask | 検証失敗時にLLMへ再生成を依頼する仕組み |
インストールと基本セットアップ
# pipでインストール pip install guardrails-ai # OpenAI統合を使用する場合 pip install guardrails-ai[openai] # LangChain統合を使用する場合 pip install guardrails-ai[langchain]
最小限の使用例
import openai from guardrails import Guard from pydantic import BaseModel class Summary(BaseModel): title: str points: list[str] word_count: int guard = Guard.from_pydantic(Summary) result = guard( llm_api=openai.chat.completions.create, model="gpt-4", messages=[{ "role": "user", "content": "以下の文章を要約してください: ..." }] ) print(result.validated_output)
Guardrails AIの利点
主な利点
宣言的定義:Pydanticの型システムを活用した直感的なスキーマ定義
自動リトライ:検証失敗時の自動再生成でロバスト性向上
豊富なバリデーター:組み込みバリデーターとカスタム拡張の両方をサポート
フレームワーク統合:LangChain、LlamaIndex等との統合が容易
参考文献
[1] Guardrails AI Documentation - https://docs.guardrailsai.com/
[2] Guardrails AI GitHub - https://github.com/guardrails-ai/guardrails
[1] Guardrails AI Documentation - https://docs.guardrailsai.com/
[2] Guardrails AI GitHub - https://github.com/guardrails-ai/guardrails