问答系统(RAG)#
大语言模型(LLMs)最常见的应用场景之一是基于特定数据集进行问答。这些数据通常以非结构化文档形式存在(如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系统的核心模块指南:
更多示例#
更多问答用例示例,请参阅综合指南中的问答章节