並列実行(Parallel)の使い方(簡易サンプル)
最終更新日: 2025-11-29
このドキュメントは、Dify Chatflow における 並列実行(Parallel) を最小構成で試せるサンプル手順です。
1つの入力から、同時に複数の応答(要約+次アクション など)を返す実装を確認できます。
1. 目的(なぜ使うのか)
- 1回の問い合わせで 複数の観点(例:要約/次アクション)を同時に返し、手戻りを減らす。
- 処理を並行化して 体感速度を向上(順不同・ストリーミングで表示)。
- 役割分担した応答(説明・チェックリスト・注意点 など)を独立に最適化できる。
2. 最小構成フロー(ノード数:5~6)
Start
└→ P.main(Parallel:2枝)
├→ N.summary(LLM:要点サマリ) → A.summary(Answer)
└→ N.actions(LLM:次アクション) → A.actions(Answer)
追加例:3枝にする場合は「N.risks → A.risks(注意点/リスク)」を足すだけ。
重要:Chatflowでは 各並列ブランチの末尾を Answer ノードで終端 する必要があります(複数Answerを許容)。
3. 用語とルール
- Parallel ブロック:内部に複数の枝(Branch)を持ち、同時に実行します。出力順は不定です。
- 各枝の終端:必ず Answer で終える(終端が無いと出力されない)。
-
共有入力:
{#sys.query#}は各枝で参照可能。重複を避けるため、プロンプトで役割を明確にする。
4. 手順
4.1 Parallel を配置
- Start の直後に Parallel ノード
P.mainを追加(枝数は 2 で開始)。
4.2 枝A:N.summary(LLM:要点サマリ) → A.summary(Answer)
System(例)
あなたは要点サマリ担当です。重複・蛇足を避け、結論→理由の順で簡潔に。
- 文字数目安:140?200字
- 箇条書きは最大3点まで
- 事実に自信がない点は「推定」と明記
User(例)
要約対象の入力:
{#sys.query#}
Answer 本文
{#N.summary.text#}
4.3 枝B:N.actions(LLM:次アクション) → A.actions(Answer)
System(例)
あなたは次アクション担当です。実務で今すぐ動ける3手順だけを番号付きで提示。
- 各項目は1行、動詞で始める
- 前提条件がある場合はその場で短く補足
User(例)
依頼内容:
{#sys.query#}
上記を踏まえ、次アクションを3つだけ挙げてください。
Answer 本文
{#N.actions.text#}
3枝にする場合は同様に N.risks(注意点/リスク) → A.risks を追加し、
System に「禁止事項・想定リスクのみを箇条書きで」など役割を明示します。
5. 動作確認チェックリスト
-
P.mainの下に 2本以上の枝 を作成した - 各枝の末尾が Answer で終端している(N.* → A.* の形)
- 2つの応答(サマリ/アクション)が順不同でストリーミング表示される
- 同一内容の重複が少ない(役割分担のプロンプトが効いている)
- 入力を変えても体裁が崩れない(箇条書き数・文量がガイドに沿う)
6. よくあるエラーと対処
| 症状 | 原因 | 対処 |
|---|---|---|
| 出力が1つしか来ない | 片方の枝の末尾に Answer が無い | 各枝の終端を Answer にする |
| 出力が来ない | Parallel直下で未接続ノードがある | すべての枝を N. → A.** で連結 |
| 内容が重複する | 役割の分離が曖昧 | Systemで「担当」を明記/冗長禁止を強める |
| コストが高い | 同じLLMを複数回呼びすぎ | 軽量モデルでの枝+最終統合を検討/本当に必要な枝のみ |
7. サンプル入力(3本)
- 「製品Xの初期設定の要点を簡潔に。次に初日タスクを3つだけ教えて。」
- 「不具合Aの問い合わせ文を要約して、現場が今日やるべき対応を3つ提案して。」
- 「見積もり依頼メールの要点と、次のアクション(返信の骨子)を示して。」
8. 発展パターン(任意)
- 3枝以上:要約/アクション/注意点/参考リンク などに分割。
- Parallel+RAG:枝AでKB回答、枝Bで“FAQ化サマリ”。
- 集約した1本にしたい:Parallel を使わず順次でまとめるか、各枝の出力を別フローに送って統合(設計の複雑化に注意)。
以上
