5.2 OutputParser

GuardrailsOutputParser

GuardrailsOutputParserの役割

GuardrailsOutputParserは、LangChainのBaseOutputParserを継承し、Guardrailsの検証機能を提供する。

from guardrails.integrations.langchain import GuardrailsOutputParser

# Guardから作成
parser = GuardrailsOutputParser.from_guard(guard)

# または直接Pydanticモデルから
parser = GuardrailsOutputParser.from_pydantic(MyModel)

主要メソッド

メソッド説明
parse(text)テキストを検証してパース
get_format_instructions()出力形式の指示文を取得
parse_with_prompt(text, prompt)プロンプト付きでパース
# format_instructionsの例
instructions = parser.get_format_instructions()
print(instructions)
# """
# Given below is XML that describes the information to extract...
# <output>
#   <string name="title" />
#   <list name="points"><string /></list>
#   <integer name="word_count" />
# </output>
# """

リトライの設定

parser = GuardrailsOutputParser.from_guard(
    guard,
    num_reasks=3  # 検証失敗時のリトライ回数
)
注意

LangChain統合時のReaskは、追加のLLM呼び出しが発生する。コストと成功率のトレードオフを考慮すること。

エラーハンドリング

from guardrails.errors import ValidationError

try:
    result = chain.invoke({"text": input_text})
except ValidationError as e:
    print(f"検証エラー: {e}")
    # フォールバック処理
参考文献
[1] LangChain - Output Parsers - https://python.langchain.com/docs/concepts/output_parsers/