问答系统(RAG)#
LLM(大型语言模型)最常见的用例之一是对一组数据进行问答。这些数据通常以非结构化文档的形式存在(例如 PDF、HTML),但也可以是半结构化或结构化的。
实现LLM问答的主要框架是检索增强生成(RAG)。LlamaIndex提供了从简单到高级的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系统:
更多示例#
有关问答用例的更多示例,请参阅我们的《将一切放在一起》中的问答部分。