工作流调度(草稿)
串行回复
当我加上第三条分支,此时的输出就很混乱了,按理来说最后输出的第二波输出反而先结束了,调用LLM结果的第一波输出最后才输出,这是为什么?
当我把LLM节点改为一个不耗时的节点的时候:
初步猜测:
- 开始节点
- 启动三个线程并行执行三个支线的代码
- 线程1:LLM节点阻塞等待返回
- 线程2:在直接回复节点1中,遇到引用变量LLM节点的结果,阻塞等待返回
- 现成3:开始-代码执行-直接回复,一路通畅,无任何阻塞,所以最先执行完毕
问题
此时虽然看似逻辑对了,但是与界面展示的并行ABC线所画出来的结果并不一致,还需要深入代码看看到底是怎么回事
代码研究
- 顺序执行,判断节点是否为分支节点
- 如果不是分支节点,则正常执行节点,获取节点边指向的目标节点(也就是下一个节点)
- 如果是分支节点,则进入分支执行逻辑,并且获取分支的汇集节点作为下一个节点,赋值为next_node_id