LangChainにおける「OutputParser」と「InputFormatter」のカスタマイズは、入出力の整形や解析処理を独自仕様に適応させるために重要な手段です。以下にそれぞれの役割と、カスタマイズ方法の詳細を説明します。
1. OutputParser(出力パーサー)
役割
LLM(大規模言語モデル)の出力を構造化データに変換するためのコンポーネントです。たとえば、JSON形式へのパース、特定のキーを持つ辞書形式への変換、または複数の出力候補の整理などが含まれます。
主要な用途
-
LLMの生出力(テキスト)をアプリで扱いやすい形式に変換
-
エージェントやツール呼び出しに必要なコマンドや構造を抽出
-
チャットボットの応答から意図やスロット値を抽出
カスタマイズ例(Python)
このクラスを LLMChain などに組み込むことで、出力処理を柔軟に制御できます。
2. InputFormatter(入力フォーマッター)
役割
プロンプトに渡す前の入力整形を担います。ユーザーデータや外部情報を元に、テンプレートに挿入する形でプロンプトを構築します。LangChainのPromptTemplateと組み合わせて使用するのが一般的です。
カスタマイズ例
LangChainには専用の PromptTemplate 構造がありますが、より動的な入力処理が必要な場合は、カスタム関数で事前整形を行い、テンプレートに渡します。
そして、これをテンプレートに組み込む形で使用します:
3. 組み合わせ例:LLMChainでの使用
まとめ
| コンポーネント | 目的 | カスタマイズ例 |
|---|---|---|
| OutputParser | LLM出力(テキスト)を構造化データに変換 | 改行区切りの key:value を辞書にする |
| InputFormatter | LLM入力(プロンプト)の整形・テンプレート化 | 複数文書をまとめて1つの文脈に整形する |
LangChainをLLMアプリケーションに本格的に導入する場合、OutputParserとInputFormatterのカスタマイズは、ビジネスロジックやUXの要件に合わせた高度な制御を可能にします。
ChatGPT4o 生成日:2025/06/12