1. 高级概念 #
这是一份快速指南,介绍构建LLM应用时频繁遇到的高级概念。
2. 大型语言模型(LLMs) #
LLMs是推动LlamaIndex诞生的基础性创新技术。这是一种人工智能(AI)计算机系统,能够理解、生成和操控自然语言,包括根据其训练数据或查询时提供的数据来回答问题。您可以通过了解更多关于使用LLMs的信息。
3. 代理式应用 #
当LLM被应用于某个程序时,它通常用于做出决策、采取行动和/或与外界交互。这正是代理式应用。
虽然代理应用程序的定义宽泛,但有几个关键特征定义了这类应用:
- LLM增强 - LLM通过工具(即代码中任意可调用的函数)、内存和/或动态提示进行了增强。
- 提示链 - 多个LLM调用相互依赖,前一个LLM调用的输出会作为下一个调用的输入。
- 路由 - LLM用于将应用程序路由至下一个合适的步骤或状态。
- 并行性 - 该应用程序能够并行执行多个步骤或动作。
- 编排 - 采用LLM的层级结构来协调底层动作与LLM运作。
- 反思 - LLM用于反思和验证先前步骤或LLM调用的输出结果,这些结果可用来引导应用程序进入下一个合适的步骤或状态。
在LlamaIndex中,您可以通过使用Workflow类用于协调一系列步骤和LLMs。了解更多关于工作流程的信息。
4. 代理 #
我们将agent定义为"agentic application"的一个具体实例。agent是一种软件,它通过将LLM与其他工具及记忆系统相结合,在一个决定下一步使用何种工具(如有需要)的推理循环中协调运作,从而半自主地执行任务。
在实际操作中,这意味着:
- 代理接收用户消息
- 代理利用LLM,结合之前的聊天记录、工具和最新用户消息,决定下一步应采取的行动
- 代理可能调用一个或多个工具来协助处理用户请求
- 如果使用了工具,代理会解析工具输出,并据此决定后续行动
- 当代理停止采取行动时,会将最终结果返回给用户
你可以了解更多关于agents的信息。
5. 检索增强生成(RAG) #
检索增强生成(RAG)是利用LlamaIndex构建数据驱动型LLM应用的核心技术。它通过查询时向LLM提供私有数据(而非基于数据训练LLM),使LLM能够回答关于您私有数据的问题。为避免发送全部数据给LLM,RAG会对数据进行索引,并仅选择性地将与查询相关的部分数据一同发送。了解更多关于RAG的信息。
6. 用例 #
基于数据的LLM应用有无尽的使用场景,但大致可归为四类:
6.1 代理 #
代理是一种由LLM驱动的自动化决策者,它通过一组工具与世界交互。代理能够采取任意数量的步骤来完成给定任务,动态决定最佳行动方案,而非遵循预设步骤。这使其具备额外的灵活性,能够应对更复杂的任务。
6.2 工作流程 #
LlamaIndex中的Workflow是一种特定的事件驱动抽象,它允许你编排一系列步骤和LLM调用。Workflow可用于实现任何智能代理应用,是LlamaIndex的核心组件。
6.3 结构化数据提取 #
Pydantic提取器允许您指定从数据中提取的精确数据结构,并利用LLMs以类型安全的方式填充缺失部分。这一功能对于从PDF、网站等非结构化来源提取结构化数据非常有用,是实现工作流自动化的关键。
6.4 查询引擎 #
查询引擎是一个端到端的流程,让你能够对数据提出问题。它接收自然语言查询,并返回响应,同时附带检索并传递给LLM的参考上下文。
6.5 聊天引擎 #
聊天引擎是一个端到端的流程,用于与您的数据展开对话(支持多轮交互而不仅限于单次问答)。