Skip to content

问答系统(RAG)#

大语言模型(LLMs)最常见的应用场景之一是基于特定数据集进行问答。这些数据通常以非结构化文档形式存在(如PDF、HTML),但也可能是半结构化或结构化的。

实现LLM问答的主流框架是检索增强生成(RAG)。LlamaIndex提供从基础到高级的RAG技术,可处理不同数据量和类型的简单到复杂问题。您可以选择使用我们预建的RAG抽象模块(如查询引擎),或构建自定义RAG工作流(示例指南)。

非结构化文档的RAG#

LlamaIndex能够导入非结构化文本、PDF、Notion和Slack文档等,并对其中的数据进行索引。

最简单的查询包括语义搜索和摘要生成。

  • 语义搜索:查询文档中与搜索词和/或语义意图匹配的特定信息。通常通过简单的向量检索(top-k)实现。语义搜索示例
  • 摘要生成:将大量数据压缩成与当前问题相关的简短摘要。摘要生成示例

结构化数据的问答#

如果数据已存在于SQL数据库、CSV文件或其他结构化格式中,LlamaIndex可以查询这些数据源。这包括文本转SQL(自然语言转SQL操作)和文本转Pandas(自然语言转Pandas操作)。

高级问答专题#

当处理更复杂的问题/更大规模数据时,LlamaIndex提供多种技术来优化查询理解、检索和数据源整合。

  • 复杂文档查询:文档表示通常很复杂——PDF可能包含文本、表格、图表、图像、页眉/页脚等。LlamaIndex提供与专有文档解析器LlamaParse集成的高级索引/检索功能。完整示例手册
  • 多源数据整合:数据分散在Slack、PDF和非结构化文本中?LlamaIndex可跨任意数量数据源进行联合查询。
  • 多源路由:面对多个数据源时,应用可先选择最佳源再将问题"路由"至该源。
  • 多文档查询:某些问题的部分答案分散在多个数据源中,需要分别查询后整合。

资源#

LlamaIndex提供丰富的问答/RAG资源。以下是一些核心参考指南:

RAG初学者想学习基础:参阅我们的"学习"系列指南

已构建RAG需要优化:查看"高级专题"指南

进阶用户想构建自定义RAG工作流:使用LlamaIndex工作流组合高级代理式RAG管道,例如这个校正型RAG工作流

想深入学习特定模块:以下是构建基础到高级问答/RAG系统的核心模块指南:

更多示例#

更多问答用例示例,请参阅综合指南中的问答章节