3.2 組み込みバリデーター

Built-in Validators

主要な組み込みバリデーター

バリデーター 対象 説明
ValidLength 文字列 文字列長の範囲検証
ValidRange 数値 数値範囲の検証
ValidChoices 任意 許可された値のリストから選択
RegexMatch 文字列 正規表現によるパターンマッチ
TwoWords 文字列 2語で構成されているか
OneLine 文字列 1行のみか(改行なし)
EndsWith 文字列 特定の文字列で終わるか

各バリデーターの使用例

ValidLength

from guardrails.validators import ValidLength

# 最小・最大長を指定
name: Annotated[str, ValidLength(min=1, max=50)]

# 最大のみ指定
description: Annotated[str, ValidLength(max=500)]

ValidRange

from guardrails.validators import ValidRange

# 整数の範囲
age: Annotated[int, ValidRange(min=0, max=150)]

# 浮動小数点の範囲
score: Annotated[float, ValidRange(min=0.0, max=1.0)]

ValidChoices

from guardrails.validators import ValidChoices

# 選択肢を限定
status: Annotated[str, ValidChoices(choices=["pending", "approved", "rejected"])]

category: Annotated[str, ValidChoices(choices=["電子機器", "食品", "衣類"])]

RegexMatch

from guardrails.validators import RegexMatch

# メールアドレス形式
email: Annotated[str, RegexMatch(pattern=r"^[\w\.-]+@[\w\.-]+\.\w+$")]

# 電話番号形式
phone: Annotated[str, RegexMatch(pattern=r"^\d{2,4}-\d{2,4}-\d{4}$")]

# 郵便番号形式
postal: Annotated[str, RegexMatch(pattern=r"^\d{3}-\d{4}$")]

Guardrails Hub

Guardrails AIは、コミュニティが作成したバリデーターをGuardrails Hubで公開している。

Guardrails Hub

追加のバリデーター(有害コンテンツ検出、PII検出、事実確認等)がHub経由でインストール可能。

# Hubからバリデーターをインストール
guardrails hub install hub://guardrails/toxic_language

# 使用例
from guardrails.hub import ToxicLanguage

class Comment(BaseModel):
    text: Annotated[str, ToxicLanguage(on_fail=OnFailAction.FILTER)]

主要なHubバリデーター

バリデーター 機能
ToxicLanguage 有害・攻撃的な言語の検出
DetectPII 個人情報(PII)の検出
ProvenanceVerifier 出典・事実の検証
CompetitorCheck 競合他社名への言及チェック
参考文献
[1] Guardrails Hub - https://hub.guardrailsai.com/
[2] Guardrails AI - Built-in Validators - https://docs.guardrailsai.com/api_reference/validators/