跳到内容

本文档是一个中心,展示了如何仅使用底层抽象(例如 LLM、提示、嵌入模型)构建 RAG 和基于代理的应用,而无需使用更多“打包好的”开箱即用抽象。

开箱即用抽象包括

高级摄取代码,例如 VectorStoreIndex.from_documents

  • 高级查询和检索器代码,例如 VectorStoreIndex.as_retriever()VectorStoreIndex.as_query_engine()
  • 高级代理抽象,例如 OpenAIAgent
  • 我们的目标是教育用户了解底层工作原理,而不是直接使用这些抽象。通过向您展示构建 RAG 和代理工作流的底层算法,您可以有能力创建自己的自定义 LLM 工作流(同时仍然可以在任何适当的粒度级别使用 LlamaIndex 抽象)。

我们将展示如何从零开始逐步构建一个应用。为了集中重点,每个教程将展示如何从零开始构建特定组件,同时对其他组件使用开箱即用抽象。注意:这是一份正在进行中的文档,我们正在完善它!

从零开始构建摄取#

本教程展示了如何定义到向量存储的摄取管道。

从零开始摄取

本教程展示了如何构建一个检索器来查询向量存储。

从零开始向量检索

本教程展示了如何仅使用开源组件构建摄取/检索管道。

开源 RAG

如果您想了解向量存储的工作原理,这里有一个教程,展示了如何构建一个非常简单的能够进行密集搜索 + 元数据过滤的向量存储。

显然不能替代生产数据库。

从零开始向量存储

本教程展示了如何使用 LLM 根据一组检索到的上下文合成结果。处理上下文溢出、异步调用和源引用!

从零开始响应合成

学习如何使用 LLM 和提示模块构建常见的基于 LLM 的评估模块(正确性、忠实度);这将帮助您定义自己的自定义评估!

从零开始评估

这些教程将向您展示如何构建超越基本 RAG 工作流的高级功能。对于有自定义工作流/生产需求的高级用户特别有帮助。

从零开始构建混合搜索#

混合搜索是许多向量数据库支持的高级检索功能。它允许将密集检索与带有匹配关键词的稀疏检索相结合。

从零开始构建路由器#

除了标准的 RAG 工作流,本教程通过展示如何从零开始构建路由器模块,将您带向使用 LLM 实现自动化决策的一步。

从零开始路由器

这里我们将向您展示如何构建一个能够进行查询重写、集成、动态检索的高级检索器。

从零开始 Fusion 检索

RAG 作为一个框架主要关注非结构化数据。LlamaIndex 也开箱即用地支持结构化数据和半结构化数据。

查看下面的指南,了解如何从零开始构建 text-to-SQL 和 text-to-Pandas(使用我们的 Query Pipeline 语法)。

从零开始 Text-to-SQL