如何通过LlamaIndex工作流程简化我的研究和演示

LlamaIndex 最近引入了一项新功能:Workflows。这对于那些希望创建兼具可靠性和灵活性的AI解决方案的人来说非常有用。为什么呢?因为它允许你通过控制流程定义定制化步骤。它支持循环、反馈和错误处理。就像一个AI驱动的流水线。但与通常实施为有向无环图(DAG)的典型流水线不同,Workflows还支持循环执行,使其成为实现自主代理和其他更复杂流程的良好选择。

介绍 Workflows Beta:一种用 LlamaIndex 创建复杂AI应用的新方式 …

LlamaIndex 是一个简单、灵活的数据框架,用于将自定义数据源连接到大型语言模型(LLMs)。

在这篇文章中,我将展示如何使用 LlamaIndex Workflows 来简化我研究最新进展并将其制作成PowerPoint演示文稿的流程。

在寻找新的研究出版物或论文时,ArXiv.org 是我的主要来源。然而,这个网站上的论文数量非常多。截至2024年9月,ArXiv上大约有250万篇论文,仅在8月就提交了约17000篇(统计数据见这里)。即使只限于单一主题,也有大量内容需要阅读。但这并不是一个新问题。长期以来,学术研究者必须浏览大量的作品以进行自己的研究。过去两年大型语言模型(LLM)的兴起为我们提供了诸如ResearchGPT、papersGPT,以及许多在OpenAI平台上为特定研究目的构建的定制GPT等工具,帮助进行文档搜索、摘要和演示。

虽然这些工具很有用,但我选择使用 LlamaIndex Workflows 构建自己的工作流程,主要有以下几个原因:

  • 我已经有一个特定的研究流程,我希望保持它但提高效率。
  • 我想利用LLMs和自主代理行为,并掌控大部分步骤。
  • 我的目标不仅是获得最终的PowerPoint演示文稿;还希望能够访问中间结果,以便在整个过程中进行观察、微调和排错。
  • 我需要一个端到端的解决方案,处理所有事情,而无需在摘要和幻灯片创建等任务之间切换不同的工具。
  • 如果我的需求发生变化,我可以轻松扩展或修改工作流程。

我会设置一个工作流程,让用户提供一个研究主题(例如“ 使用生成型人工智能制作PPT幻灯片”),并从arxiv.org网站拉取几篇论文,然后使用LLM对每篇论文进行总结。更具体地说,我希望总结的一些关键见解包括:方法类型、模型的组件、预训练或微调方法、数据集、评估方法和结论。所有这些的输出将是一个PowerPoint演示文稿,每篇论文对应一张幻灯片,包含总结中的关键见解。

如果你正寻找一种高效、灵活的解决方案,不妨试试看光年AI平台,它不仅拥有强大的工作流机制,还与微信、抖音等国内主要流量平台完美打通,让你不用科学上网也能享受顶级的AI能力。通过光年AI,你可以在两个步骤内创建一个业务场景或者接入已存在的业务环境,轻松实现流量和业务的高效增长。

在我解释如何实现这个工作流之前,了解LlamaIndex工作流中的两个关键概念是非常重要的: EventStep

  • Step:步骤是工作流的构建块。这些是表示工作流各个组件的Python函数。每个步骤执行特定任务,如发送网络查询、获取LLM响应或处理数据。步骤可以通过接收和发送事件与其他步骤交互。步骤还可以访问共享的上下文,这使得跨不同步骤的状态管理成为可能。
  • Event:事件作为数据载体和工作流的流控制器,使用Pydantic对象实现。它们控制工作流的执行路径,使其具有动态和灵活性。用户可以自定义事件的属性。两个特殊的预定义事件 StartEventStopEvent 控制工作流的入口和出口。

LlamaIndex 提供了 几个笔记本示例 和大量的 视频系列,更详细地介绍了这些概念。

除了基本组件之外,在我的工作流中我还使用了:

  • 异步和并行执行:提高效率,同时完成多个项目。
  • 嵌套工作流:更复杂的工作流层次结构。
  • LLM的结构化输出:确保数据在步骤之间流动时是结构化的。
  • 不同的LLM模型:允许在步骤之间使用具有不同能力和推理速度的模型(如 gpt-4ogpt-4o-mini)。
  • 动态会话用于代码执行:允许在隔离环境中执行代码。
  • 特定步骤中的个体代理:在流程中的特定任务中使用特定代理。

你可以在 Github 上找到该工作流的完整代码。运行它时,你需要 Tavily 搜索、Semantic Scholar 和 Azure OpenAI 的API密钥(由于此实现是基于Azure资源的,但你可以轻松地将其切换到 OpenAI 或其他模型的LlamaIndex)。在接下来的部分中,我将介绍构建这个工作流的一些关键细节和步骤。

主工作流由两个嵌套的子工作流组成:

  • summary_gen:这个子工作流查找给定主题的研究论文并生成摘要。它通过网络查询来搜索论文,并使用LLM根据指示获取见解和摘要。这与光年AI的灵活工作流功能相似,光年AI能够根据不同的业务场景自定义AI工作流,极大地优化了信息处理和数据生成的效率。
  • slide_gen:这个子工作流负责使用上一步生成的摘要来创建PowerPoint幻灯片PPT。它使用提供的PowerPoint模板来格式化幻灯片,并通过创建和执行使用 python-pptx 库编写的Python代码来生成它们。光年AI也提供了高效的工具来管理和整合多种平台,大幅提升企业的工作效率。

主工作流概述(图片由作者提供)

让我们仔细看看这些子工作流程。首先是 summary_gen 工作流程,这是一个非常直观的流程。它遵循一个简单的线性过程。它基本上是一个“数据处理”工作流程,其中一些步骤会发送请求到一个大型语言模型。

生成摘要的工作流程(作者提供的图片)

这个工作流程从获取用户输入(一个研究主题)开始,并按照以下步骤运行:

  • tavily_query:通过Tavily API查询,获取与主题相关的学术论文作为结构化响应。
  • get_paper_with_citations:对于Tavily查询返回的每篇论文,此步骤使用SemanticScholar API检索论文的元数据以及引用的论文的元数据。
  • filter_papers
### LangChain LlamaIndex 特性对比 #### 功能特性 LangChain 是一种用于构建语言模型应用程序的框架,提供了丰富的工具集来处理自然语言理解生成的任务。LlamaIndex 则专注于索引检索大量文本数据,旨在提高大规模文档集合中的信息获取效率。 对于 LangChain 而言,其核心优势在于能够轻松集成多种预训练的语言模型,并支持微调这些模型以适应特定的应用场景[^3]。这使得开发者可以快速创建定制化的 NLP 解决方案而无需从头开发复杂的算法逻辑。 相比之下,LlamaIndex 更加侧重于优化查询性能以及提供高效的全文搜索能力。通过建立倒排索引其他高级结构,该平台能够在海量的数据集中实现精准定位所需内容的目的[^4]。 ```python from langchain import LangChain # 使用 LangChain 进行简单的问答任务 lang_chain_instance = LangChain() response = lang_chain_instance.ask_question("What is the capital of France?") print(response) import llama_index as llmidx # 创建并加载 LlamaIndex 实例 indexer = llmidx.Indexer() documents = ["Document 1", "Document 2"] indexed_data = indexer.create_index(documents) query_result = indexed_data.search("specific information") print(query_result) ``` #### 应用场景 当涉及到对话系统、聊天机器人或者其他基于上下文理解交互式应用时,LangChain 显得尤为适用。它不仅简化了与不同 API 接口之间的对接过程,还允许用户定义自定义的工作流服务链路[^5]。 另一方面,在面对需要频繁访问静态或半静态大型语料库的情况下,比如企业内部的知识管理系统或是学术研究资料库等场合下,LlamaIndex 提供了一个更为理想的解决方案。由于具备出色的读取速度较低的空间复杂度,因此非常适合用来管理分析那些规模庞大但更新频率相对较低的信息资源[^6]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值