串行回復
當我加上第三條分支,此時的輸出就很混亂了,按理來說最后輸出的第二波輸出反而先結束了,調用LLM結果的第一波輸出最后才輸出,這是為什么?
當我把LLM節點改為一個不耗時的節點的時候:
初步猜測:
- 開始節點
- 啟動三個線程并行執行三個支線的代碼
- 線程1:LLM節點阻塞等待返回
- 線程2:在直接回復節點1中,遇到引用變量LLM節點的結果,阻塞等待返回
- 現成3:開始-代碼執行-直接回復,一路通暢,無任何阻塞,所以最先執行完畢
問題
此時雖然看似邏輯對了,但是與界面展示的并行ABC線所畫出來的結果并不一致,還需要深入代碼看看到底是怎么回事
代碼研究
- 順序執行,判斷節點是否為分支節點
- 如果不是分支節點,則正常執行節點,獲取節點邊指向的目標節點(也就是下一個節點)
- 如果是分支節點,則進入分支執行邏輯,并且獲取分支的匯集節點作為下一個節點,賦值為next_node_id