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