Skip to content

问答系统(RAG)#

LLM(大型语言模型)最常见的用例之一是对一组数据进行问答。这些数据通常以非结构化文档的形式存在(例如 PDF、HTML),但也可以是半结构化或结构化的。

实现LLM问答的主要框架是检索增强生成(RAG)。LlamaIndex提供了从简单到高级的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系统:

更多示例#

有关问答用例的更多示例,请参阅我们的《将一切放在一起》中的问答部分