Dify流程编排之并行结构使用经验分享
Dify中的并行工作流结构解析:主要包括简单并行、嵌套并行和复杂结构三种形式。简单并行允许多个分支同时运行;嵌套并行是在并行分支中再构建并行结构;复杂结构中需注意节点依赖关系,避免因变量缺失导致报错。正确做法是在依赖节点前加入同步节点,形成合理的双分支嵌套并行结构,确保工作流正常运行。
简介:
在 Dify 中,并行结构是指工作流中多个节点可以同时运行,而不是按照线性顺序依次执行 。在处理复杂任务时,将任务拆分成多个子任务,分别由不同的节点并行处理,最后将各节点的处理结果汇总,以实现高效的任务处理流程。
1.简单并行:

这种是dify中最简单的并行结构,分支1,分支2,分支3可以同时运行。我们将鼠标指针放在其中一个分支上,可以看到分支左上角出现了并行运行的文字,也可以帮我们判断他们是不是并行运行的。
2.嵌套并行
嵌套并行听起来高大上,其实也很好理解,就像刚刚简单并行结构一样,我们将其中一个分支2拆成一个并行结构:

如果我们将 分支2(以及分支2-1和分支2-2) 作为一个整体看待的话,那么就是 这一个整体和 分支1与分支3并行。同时,在分支2的内部,分支2-1和分支2-2是并行运行的。
3.复杂结构
我个人在工作的时候编写了下面这样的结构:其实,下面这个结构是错误的,当我们运行的时候会报错:节点LLM2节点的LLM1的变量缺失。当我们按照如下情况运行时,到了LLM2这个节点的时候,可能分支3已经完成了,而LLM1还没有完成,但是我们LLM2的输入又需要LLM1的输入,就会报缺少变量的错误。
因为下图的工作流从开始节点分成了三条并行分支,但是分支确实两两合并,导致最后的汇总节点并不能实现阻塞等待。
正确是做法应该如下:

我们在分支1和分支2之前加入了一个LLM3节点,这样我们的分支结构就变成了一个双分支并行结构,同时在LLM3分支下又嵌套了另一个双分支并行结构。
更多推荐
所有评论(0)