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