问答 (RAG)#
LLM 最常见的用例之一是回答关于一组数据的问题。这些数据通常以非结构化文档(例如 PDF、HTML)的形式存在,但也可能是半结构化或结构化的。
启用 LLM 问答的主要框架是检索增强生成(RAG)。LlamaIndex 提供了简单到高级的 RAG 技术,以应对不同数量和类型数据上的简单到复杂问题。您可以选择使用我们预构建的 RAG 抽象(例如查询引擎),或者构建自定义 RAG 工作流(示例指南)。
非结构化文档上的 RAG#
LlamaIndex 可以拉取非结构化文本、PDF、Notion 和 Slack 文档等,并将其中的数据进行索引。
最简单的查询涉及语义搜索或摘要。
结构化数据上的问答#
如果您的数据已存在于 SQL 数据库、CSV 文件或其他结构化格式中,LlamaIndex 可以查询这些来源中的数据。这包括文本到 SQL(自然语言到 SQL 操作)以及文本到 Pandas(自然语言到 Pandas 操作)。
高级问答主题#
随着您处理更复杂的问题/更多数据,LlamaIndex 提供了许多技术来帮助您更好地理解查询、进行检索以及集成数据源。
- 查询复杂文档:通常您的文档表示很复杂——您的 PDF 可能包含文本、表格、图表、图像、页眉/页脚等。LlamaIndex 提供与我们专有的文档解析器 LlamaParse 集成的高级索引/检索功能。完整的实战指南在此。
- 合并多个来源:您的一些数据在 Slack 中,一些在 PDF 中,一些在非结构化文本中?LlamaIndex 可以合并来自任意数量来源的查询并将它们组合起来。
- 跨多个来源路由:给定多个数据来源,您的应用可以首先选择最佳来源,然后将问题“路由”到该来源。
- 多文档查询:有些问题的部分答案存在于多个数据来源中,需要在组合之前分别进行查询
资源#
LlamaIndex 有很多关于问答 / RAG 的资源。这里列出了一些核心资源指南供参考。
我是 RAG 初学者,想学习基础知识:请参阅我们的“学习”系列指南。
我已构建了 RAG,现在想对其进行优化:请参阅我们的“高级主题”指南。
我更高级,想构建自定义 RAG 工作流:使用 LlamaIndex 工作流 来组合高级的代理式 RAG 流水线,例如这个纠正性 RAG 工作流。
我想了解特定模块的全部内容:这里是核心模块指南,可帮助构建简单到高级的问答/RAG 系统
更多示例#
更多问答用例示例,请参阅我们的“整合所有”中的问答部分。