在maxkb平台工作流当中,如果我有一个多条件判断的工况,例如我对于一段材料需要分别处理2个条件判断,条件1为是时输出A,为否时输出B,同时还存在一个平行的条件2,为是时输出C,为否时输出D,我应该如何将这些输出结果进行合并成为一个输出结论。
按照其他帖子的经验,当我直接将每个节点的输出结果均在“指定回复”节点中进行输入时,我首先只能选择将这个指定回复的节点设置为“前置ANY任一节点执行完执行本节点”(否则,由于A和B、C和D之间是互斥的,他们不可能存在执行结果,如果我设置为“前置ALL所有节点执行完执行本节点”则会导致工作流报错)。
然后我在"指定回复"节点输入框中输入:条件1为是时结论为{{输出A.answer}},为否时结论为{{输出B.answer}},条件2为是时结论为{{输出C.answer}},条件2为否时结论为{{输出D.answer}},此时,由于不同的条件分支运行速度是不一样的,这将导致如果条件1的执行速度更快,例如当条件1和2的结论均为是,会首先输出:条件1的结论为{{输出A.answer}},条件2的结论为None,等到条件2运行完毕然后再输出一遍:条件1的结论为{{输出A.answer}},条件2的结论为{{输出C.answer}}。显然,条件1的结论被重复输出了一次。
我的问题是:
现在条件1和条件2的运行是并行的,这种情况下“条件1的结论被重复输出了一次”这个现象有没有办法规避
如果不能规避,那么把条件1和条件2改成串行的,先运行条件1,然后把结论存储起来,再运行条件2,这样运行速度是不是将受到很大影响

就是一个如此简单的总分总式结构,如果有苹果就回复有,如果有橘子就用AI查询出现了几次,这两个分支条件运行速度是不一样的,导致结果就会出现了两次。这个结构应该怎么优化,其他内容详见我的主贴
玉树
4
因为你开启了多个返回内容,其他的都关掉,只开启最终“指定回复”的返回内容就好。
你最后一个节点选了任一,任一前置连线节点执行完成后,即可执行当前节点。当前面判断苹果的时候,走到最后这个指定回复,就输出一次,后面算橘子出现的时候,又走到这个指定回复,就又输出了一次,此时已知包含苹果了,所以完整输出了。这边建议可以使用两个指定回复,只接收单个的判断结果,比如包不包含苹果用一个指定回复,橘子的判断单独用一个指定回复,这样就不会因为工作流的前后输出两次或多次的情况~
在我的实际需求中,我需要对整个语句的多个判断结论进行合并,形成一段统一的数据。
所以按照您的方法我也尝试过,对苹果和橘子分别采用了一个指定回复。
但是当我需要一个总结回复的时候,我就需要一个指定回复同时连接这两个指定回复,那么已知这两个指定回复的输出速度是不等的,最后这个总结回复也会输出2次。
————————————————————————
我目前的解决办法是:对苹果的2个判断分支分别接了一个指定回复,并采用变量聚合,条件设置为any,接收这两个回复的第一个非空值,对橘子分支也是同理,最后设置了一个指定回复接收苹果和橘子2个分支的变量聚合结果,条件设置为all,这样尽管2个分支速度不同,由于最后设置为all,只会输出一次
1.我不知道我这个方法是不是不够聪明,是否还有其他方法我没有了解到
2.正如帖子中提到的,这个并行流程注定存在这个问题,如果我改成了串联流程,是否其运行速度会大打折扣