LlamaIndex Workflows

背景和价值

LlamaIndex Workflows初探

LlamaIndex Workflows是LlamaIndex近期推出(仍然是测试版)的用来替代之前Query Pipeline(查询管道)的新特性。与LangGraph不同的是,其没有采用类似LangCraph基于图结构的流程编排模式,而是采用了一种事件驱动的工作流编排方式:

工作流中的每个环节被作为step(步骤,代表一个处理动作),每个step可以选择接收(类似订阅)一种或多种event(事件)做处理,并同样可以发送一种或多种event给其他step。通过这种方式,把多个step自然的连接起来形成完整的Workflow。

在这种架构中,工作流的运行不是由框架来根据预先的定义(比如Graph)来调度任务组件执行,而是由组件自身决定:你想接收什么event,做什么处理,并发出什么event。如果组件B接受了A发出的某种event,那么B就会在A发出event后触发执行。

基本概念

Workflow(工作流)

工作流代表一个复杂的RAG、Agent或者任意复合形式的LLM应用的端到端流程。创建完工作流后,调用run方法,并输入任务即可启动。

Workflow类似LangGraph中的Graph。

Step(步骤)

步骤代表工作流中的单个任务,你可以自由的定义步骤内容。每个步骤接收输入事件(订阅),并返回输出事件。当输入事件发生时,这个步骤就会自动执行。步骤使用Python函数定义。
Step类似LangGraph中的Node。

Step可以是一个逻辑片段,也可以调用llm做复杂操作。

Event(事件)

事件是一个步骤的输入输出,也是工作流各个步骤之间的数据载体。当事件发生时,“订阅”该事件的步骤就会执行,同时从事件中取出必要数据。事件是一个Pydantic类型对象,可以自由定义结构。注意两个特殊事件:

StartEvent与StopEvent是两个系统事件,代表工作流开始与结束。
StartEvent由框架派发,接收StartEvent的步骤代表工作流的开始。
StopEvent由框架接收,发送StopEvent的步骤代表没有后续步骤。

langgraph vs llamaindex

http://www.uml.org.cn/ai/2024111544.asp

参考资料

https://zhuanlan.zhihu.com/p/1890025765422224270

posted @ 2025-05-24 22:40  向着朝阳  阅读(75)  评论(0)    收藏  举报