上一篇我们把图跑起来了,但调用方式还是 invoke。
invoke 的特点很直接:等整张图执行完,再一次性拿到结果。
如果图里只有一两个节点,这种方式没什么问题。可一旦图里有模型节点、工具节点,还要来回走几轮,用户面对的就是一段很长的等待。页面没有变化,终端也没有输出,只能干等。
流式输出就是把这段等待拆开。
图在运行过程中,每往前走一步,你就先拿到一步的结果。模型开始调工具时,可以先显示“正在查询天气”;工具跑完时,可以先把工具结果打出来;模型开始生成回复时,也可以边生成边往前端推。
这一篇先讲 graph.stream(...)。
它已经覆盖了大部分日常场景。streamEvents(...) 还会讲,但放在后面,当作更细粒度的补充。