跳转到内容

高级概念

这是关于构建LLM应用时经常遇到的高层概念的快速指南。

LLMs是推动LlamaIndex发展的根本性创新。它们是一种人工智能(AI)计算机系统,能够理解、生成和处理自然语言,包括基于其训练数据或在查询时提供给它们的数据来回答问题。

当在应用程序中使用大型语言模型时,它通常用于做出决策、执行操作和/或与世界互动。这就是智能体应用的核心定义。

虽然智能体应用的定义很广泛,但有几个关键特征定义了智能体应用:

  • LLM增强: 通过工具(即代码中的任意可调用函数)、记忆和/或动态提示来增强LLM。
  • 提示链: 使用多个相互构建的LLM调用,其中一个LLM调用的输出被用作下一个调用的输入。
  • 路由: 使用LLM将应用程序路由到下一个合适的步骤或状态。
  • 并行性: 该应用程序能够并行执行多个步骤或操作。
  • 编排: 使用LLM的层次结构来编排底层动作和LLM。
  • 反思: 使用大语言模型对先前步骤或大语言模型调用的输出进行反思和验证,可用于引导应用程序进入下一个合适的步骤或状态。

在LlamaIndex中,您可以通过使用工作流来编排一系列步骤和LLM,构建智能体应用程序。您可以了解更多关于工作流的信息

我们将智能体定义为“智能体应用”的一个具体实例。智能体是一种软件,通过将大语言模型与其他工具及记忆相结合,在半自主状态下执行任务,并在一个决定下一步使用哪个工具(如有)的推理循环中进行编排。

在实践中,这意味着类似以下情况:

  • 一个智能体接收到用户消息
  • 智能体使用LLM,根据之前的聊天记录、工具和最新的用户消息来确定下一步要采取的适当行动
  • 智能体可以调用一个或多个工具来协助处理用户请求
  • 如果使用了工具,智能体将解释工具输出并利用它们来指导下一步行动
  • 一旦智能体停止采取行动,它会将最终输出返回给用户

您可以了解更多关于智能体的信息

检索增强生成(RAG)是通过LlamaIndex构建数据驱动LLM应用的核心技术。它允许LLM通过查询时向LLM提供数据来回答关于您私有数据的问题,而无需在您的数据上训练LLM。为避免每次向LLM发送全部数据,RAG会对您的数据进行索引,并选择性地仅发送相关部分与查询内容。您可以了解更多关于RAG的信息

基于数据的LLM应用有无数用例,但大致可分为四类:

智能体: 智能体是由大型语言模型驱动的自动化决策者,通过一组工具与世界交互。智能体可以采取任意数量的步骤来完成给定任务,动态决定最佳行动方案,而非遵循预设步骤。这赋予其额外的灵活性以应对更复杂的任务。

工作流: 在LlamaIndex中,工作流是一种特定的事件驱动抽象,允许您编排一系列步骤和LLM调用。工作流可用于实现任何智能体应用,是LlamaIndex的核心组件。

结构化数据提取: Pydantic提取器允许您指定精确的数据结构来从数据中提取,并使用LLMs以类型安全的方式填充缺失部分。这对于从PDF、网站等非结构化来源中提取结构化数据非常有用,是实现工作流自动化的关键。

查询引擎: 查询引擎是一个端到端的流程,允许您对数据进行提问。它接收自然语言查询,并返回响应,同时附带检索并传递给大语言模型的参考上下文。

聊天引擎: 聊天引擎是一个端到端的流程,用于与您的数据进行对话(多次来回交流而非单次问答)。