パラメータ抽出ノード
目的
自然文やメール文面から 型式・数量・納期 を抜き出し、構造化データとして処理する方法を解説します。
- 簡易版:単一アイテムの抽出に対応
- 拡張版:複数行アイテム+IF/ELSEでエラーハンドリングし、整形した確認メッセージを返す
簡易版:単一アイテムの抽出フロー
ノード構成
[開始]
└→ [パラメータ抽出]
└→ [終了]
手順
-
開始ノード
- ユーザー入力を受け取る
- 例:「コネクタX200を5個、9/30までに手配して」
-
パラメータ抽出ノード
- 入力:
conversation.text - 抽出パラメータ:
-
part_number: string(必須) -
quantity: number(必須) -
due_date: string(任意, YYYY-MM-DD)
-
- 指示文例:
ユーザー発話から以下を厳密に抽出し、JSONのみを返してください。 - part_number: string(型式/品番) - quantity: number(半角数値) - due_date: string(YYYY-MM-DD。無ければ null)
- 入力:
-
終了ノード
- 出力テンプレート:
発注内容を確認しました。 - 型式: {{ parameter_extractor.part_number }} - 数量: {{ parameter_extractor.quantity }} - 希望納期: {{ parameter_extractor.due_date ?? "指定なし" }}
- 出力テンプレート:
入力サンプル
- 「E3Z-T61Aを3個、9/30まで」
- 「XL-400Bを2個お願いします」
- 「X200を5台」
拡張版:複数行アイテム+確認メッセージ整形フロー
ノード構成
[開始]
└→ [パラメータ抽出: lines(Array[Object])]
└→ [IF/ELSE: __is_success==1]
├─ ELSE → [回答: エラー内容と入力例を案内]
└─ IF → [イテレーション: lines]
└→ (ループ内)
[LLM: 各行のモック結果(JSON)]
└→ [LLM 2: 配列を確認メッセージに整形]
└→ [回答]
手順
-
開始ノード
- 複数行を含む入力を受け取る
- 例:「X200は5、X300は2個。X500は来週月曜まで」
-
パラメータ抽出ノード
- 入力:
conversation.text - 抽出パラメータ:
-
lines: Array[Object]part_number: stringquantity: numberdue_date: string|null
-
- 指示文例:
入力から発注行の配列 lines を抽出し、厳密な JSON のみを返してください。 各要素: { "part_number": string, "quantity": number, "due_date": "YYYY-MM-DD" or null }。 数量が無ければ 1、日付の略記は今年の該当日に正規化。
- 入力:
-
IF/ELSEノード
- 条件:
parameter_extractor.__is_success == 1 - ELSE 側:抽出失敗時の分岐
- 条件:
-
回答ノード(失敗時)
- メッセージ例:
発注内容の読み取りに失敗しました。 入力例: - 「E3Z-T61Aを3個、10/5まで」 - 「X200は5、X300は2個」 エラー内容: {{ parameter_extractor.__reason }}
- メッセージ例:
-
イテレーションノード
- 入力コレクション:
parameter_extractor.lines - ループ要素名:
item
- 入力コレクション:
-
ループ内 LLMノード
-
LLM 2(整形用)
- 入力:
{{ iteration.results }}を渡す - 指示文例:
以下の発注明細(JSON配列)を読み、人間に分かりやすい確認メッセージに変換してください。 [出力仕様] - 件数と合計金額を先頭にまとめる - 各行を「・型式 / 数量 / 在庫可否 / 納期(予定) / 金額: \xx,xxx」の形式で列挙 - 在庫不足がある場合のみ、末尾に「在庫不足の品目があります。納期をご確認ください。」を追記 - 出力はプレーンテキストのみ
- 入力:
-
回答ノード
- 出力:
{{ LLM_2.text }}
- 出力:
入力サンプル
- 「E3Z-T61Aを3個、10/5まで。E3Z-T81Aを2個。X200は5。」
- → 3行の結果が配列で返され、整形後に確認メッセージとして提示
- 「X200=5、X300=2、X999=1」
- →
X999は在庫不足としてエラーメッセージに反映
- →
まとめ
- 簡易版:単一アイテムの抽出 → 確認
- 拡張版:複数アイテムを配列で抽出し、IF/ELSEでエラーハンドリング → イテレーション処理 → 整形メッセージを返答
- これにより、自由記入の発注文でもそのまま処理フローに流せます。
以上





