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/
[1] Guardrails Hub - https://hub.guardrailsai.com/
[2] Guardrails AI - Built-in Validators - https://docs.guardrailsai.com/api_reference/validators/