从零开始构建 RAG(底层)#
本文档是展示如何仅使用底层抽象(例如 LLMs、提示、嵌入模型)构建 RAG 和基于代理的应用程序的中心,而不使用更多“打包好的”抽象的枢纽。
打包好的抽象包括:
- 高级摄入代码,例如
VectorStoreIndex.from_documents
- 高级查询和检索代码,例如
VectorStoreIndex.as_retriever()
和VectorStoreIndex.as_query_engine()
- 高级代理抽象,例如
OpenAIAgent
目标不是使用这些,而是在这里教育用户底层发生了什么。通过展示构建 RAG 和代理管道的基础算法,您可以掌握创建自定义 LLM 工作流的能力(同时在任何层次上使用 LlamaIndex 抽象都是有意义的)。
我们展示了如何逐个组件地从头开始构建应用程序。为了便于关注,每个教程将展示如何从头开始构建特定组件,同时使用现成的抽象构建其他组件。注意:这是一个正在完善中的文档,我们正在完善中!
从头开始构建摄入#
本教程展示了如何定义一个摄入管道到向量存储。
从头开始构建向量检索#
本教程展示了如何构建一个检索器来查询向量存储。
从头开始构建摄入/检索(开源/本地组件)#
本教程展示了如何仅使用开源组件构建摄入/检索管道。
从头开始构建(非常简单的)向量存储#
如果您想了解更多关于向量存储的工作原理,这里有一个教程,向您展示如何构建一个非常简单的向量存储,能够进行密集搜索和元数据过滤。
显然,这不是生产数据库的替代品。
从头开始构建响应合成#
本教程向您展示如何使用 LLM 来合成给定一组检索上下文的结果。处理上下文溢出、异步调用和来源引用!
从头开始构建评估#
学习如何使用常见的基于 LLM 的评估模块(正确性、忠实度),使用 LLM 和提示模块;这将帮助您定义自己的自定义评估!
从头开始构建高级 RAG#
这些教程将向您展示如何构建超出基本 RAG 管道的高级功能。对于具有自定义工作流/生产需求的高级用户特别有帮助。
从头开始构建混合搜索#
混合搜索是许多向量数据库支持的高级检索功能。它允许您将密集检索与稀疏检索和匹配关键字结合起来。
从头开始构建路由器#
除了标准的 RAG 管道,这让您向自动化决策迈出了一步,它向您展示如何从头开始构建一个路由器模块。
从头开始构建 RAG 融合检索器#
在这里,我们向您展示如何构建一个高级检索器,能够进行查询重写、集成和动态检索。
从头开始构建结构化数据的问答#
作为一个框架,RAG 主要关注非结构化数据。LlamaIndex 也具有对结构化数据和半结构化数据的现成支持。
看看我们下面的指南,了解如何从头开始构建文本到 SQL 和文本到 Pandas(使用我们的查询管道语法)。