LlamaIndex workflow 可视化

什么是workflow?

工作流是一种基于事件驱动、按步骤控制应用程序执行流程的方式。

在工作流中,您的应用程序被分为若干个“步骤”,每个步骤由特定事件触发,并且每个步骤又可能触发其他事件。

通过组合这些步骤和事件,您可以构建任意复杂的流程,这些流程封装了应用的逻辑,使得应用更加易于维护和理解。

工作流中的每个步骤可以是简单的一行代码,也可以是一个复杂的智能体。它们可以有多种输入和输出,这些输入和输出通过事件传递。

在这个可视化示例中,我们展示了一个相对复杂的工作流,它的目标是处理一个查询。工作流首先选择性地改进查询,然后尝试用三种不同的RAG(Retrieval-Augmented Generation)策略来回答查询。最后,LLM(大型语言模型)会从三种策略的结果中选择一个最佳答案并返回。

我们可以将此流程分解如下:

  • StartEvent:工作流从一个开始事件触发。

  • judge_query:此步骤评估查询的质量。如果查询质量不高,会生成一个BadQueryEvent

  • BadQueryEvent:这个事件触发一个名为improve_query的步骤,该步骤会尝试改进查询,并生成一个JudgeEvent

  • JudgeEvent:该事件再次触发judge_query,形成一个反馈循环,直到查询质量足够高为止。这种反馈循环被称为“反思”(Reflection),是工作流中实现智能决策的关键部分。

  • 查询质量合格后:生成三个并行事件:NaiveRAGEventHighTopKEventRerankEvent,分别触发三个步骤,每个步骤运行不同的RAG策略。

  • ResponseEvent:每个RAG策略会生成一个ResponseEvent,并触发judge_response步骤,该步骤会等待所有三个响应。

  • judge_response:此步骤会评估并选出最佳响应,并通过StopEvent将最佳答案返回给用户。

image.png

LlamaIndex 如何进行可视化?

安装的内置可视化工具来实现:

pip install llama-index-utils-workflow

导入可视化工具, 并进行使用

from llama_index.utils.workflow import draw_all_possible_flows

# 可视化工作流

draw_all_possible_flows(MyWorkflow, filename="workflow.html")

完整实现

import asyncio

from llama_index.utils.workflow import draw_all_possible_flows
from llama_index.core.workflow import (
    StartEvent,
    StopEvent,
    Workflow,
    step,
)

  
class MyWorkflow(Workflow):
    @step
    async def my_step(self, ev: StartEvent) -> StopEvent:
        # 在这里做些事情
        return StopEvent(result="Hello, world!")


# 可视化工作流
draw_all_possible_flows(MyWorkflow, filename="workflow.html")
  
async def main():
    w = MyWorkflow(timeout=10, verbose=False)
    result = await w.run()
    print(result)

if __name__ == "__main__":
    asyncio.run(main())

当前目录下会生成html

image.png

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI Agent首席体验官

您的打赏是我继续创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值