高级概念#
这是一份快速指南,介绍了在构建 LLM 应用时会频繁遇到的高级概念。
大语言模型 (LLMs)#
LLMs 是 LlamaIndex 诞生的根本创新。它们是一种人工智能 (AI) 计算机系统,能够理解、生成和处理自然语言,包括根据其训练数据或在查询时提供给它们的数据回答问题。您可以了解更多关于使用 LLMs 的信息。
代理应用#
当 LLM 在应用程序中使用时,它通常用于做出决策、采取行动和/或与世界交互。这是代理应用的核心定义。
尽管代理应用的定义很广泛,但有几个关键特征定义了代理应用
- LLM 增强:LLM 通过工具(即代码中任意可调用的函数)、内存和/或动态提示进行增强。
- 提示链:使用多个相互构建的 LLM 调用,一个 LLM 调用的输出用作下一个调用的输入。
- 路由:LLM 用于将应用程序路由到应用程序中的下一个适当的步骤或状态。
- 并行性:应用程序可以并行执行多个步骤或操作。
- 编排:使用 LLM 的层级结构来编排较低级别的操作和 LLM。
- 反思:LLM 用于反思和验证前一步骤或 LLM 调用的输出,这可以用来指导应用程序进入下一个适当的步骤或状态。
在 LlamaIndex 中,您可以使用 Workflow
类来编排一系列步骤和 LLMs,从而构建代理应用。您可以了解更多关于工作流的信息。
代理#
我们将代理定义为“代理应用”的一个具体实例。代理是一种软件,通过将 LLMs 与其他工具和内存结合,在推理循环中自主地执行任务,该循环决定接下来使用哪个工具(如果需要)。
这在实践中意味着:- 代理接收用户消息 - 代理使用 LLM,结合先前的聊天历史、工具和最新的用户消息来确定要采取的下一个适当行动 - 代理可能会调用一个或多个工具来协助处理用户的请求 - 如果使用了工具,代理将解释工具输出并用其指导下一个行动 - 一旦代理停止采取行动,它会将最终输出返回给用户
您可以了解更多关于代理的信息。
检索增强生成 (RAG)#
检索增强生成 (RAG) 是使用 LlamaIndex 构建数据支持 LLM 应用的核心技术。它通过在查询时将您的私有数据提供给 LLM,而不是在您的数据上训练 LLM,从而使 LLMs 能够回答关于您私有数据的问题。为了避免每次都将所有数据发送给 LLM,RAG 会索引您的数据,并仅选择性地将相关部分与您的查询一起发送。您可以了解更多关于 RAG 的信息。
使用案例#
数据支持的 LLM 应用有无数的使用案例,但大致可以分为四类
代理:代理是由 LLM 驱动的自动化决策器,通过一套工具与世界交互。代理可以执行任意数量的步骤来完成给定任务,动态决定最佳行动方案,而不是遵循预设步骤。这使其具有额外的灵活性来处理更复杂的任务。
工作流:LlamaIndex 中的工作流是一种特定的事件驱动抽象,允许您编排一系列步骤和 LLMs 调用。工作流可用于实现任何代理应用,是 LlamaIndex 的核心组件。
结构化数据提取 Pydantic 提取器允许您指定要从数据中提取的精确数据结构,并以类型安全的方式使用 LLMs 填充缺失的部分。这对于从 PDF、网站等非结构化源中提取结构化数据非常有用,也是自动化工作流的关键。
查询引擎:查询引擎是一个端到端流程,允许您对数据提出问题。它接收自然语言查询,并返回响应以及检索到的并传递给 LLM 的参考上下文。
聊天引擎:聊天引擎是一个端到端流程,用于与您的数据进行对话(多次往返而不是单一问答)。
提示
- 告诉我如何自定义
- 继续学习我们的理解 LlamaIndex 指南
- 准备深入研究?请查看组件指南