摘要:在我们开始Agentic RAG应用之前,先快速回顾一下传统的 RAG 架构是什么样子以及它的工作原理。这些知识对后来的初学者以及不知道基本 RAG 流程如何工作的人将会很有用。
在我们开始Agentic RAG应用之前,先快速回顾一下传统的 RAG 架构是什么样子以及它的工作原理。这些知识对后来的初学者以及不知道基本 RAG 流程如何工作的人将会很有用。
从上面的简单 RAG 系统的图中,我们看到有如下一些元素:
(1)文档(Documents):这是我们想要用外部信息增强大语言模型(LLM)的上下文,它被输入到 LLM 中。这些可以是 PDF 或任何其他文本文档,甚至是适合多模态 LLM 的图像。
(2)块(Chunks):较大的文档被分解成较小的尺寸,通常被称为块(Chunks),有时也称为节点(Nodes)。
(3)嵌入(Embeddings):一旦有了较小尺寸的块,我们就会为它们创建向量嵌入。当接收到用户查询时,执行相似性搜索并检索最相似的文档(块),RAG 的检索部分。这些检索到的文档块与用户查询一起发送到 LLM,检索到的文档作为上下文。从这里,LLM 生成响应。
上面是典型的传统 RAG 系统的工作方式。
已经看到了上面的简单 RAG 的实现,这种方法适用于简单的问答任务,涉及一个或几个文档。不适合复杂的问答任务和对大量文档的摘要。
这就是智能体可以发挥作用的地方,帮助将简单的 RAG 实现提升到一个全新的水平。有了 Agentic RAG 系统,更复杂的任务,如文档摘要、复杂的问答以及其他许多任务,可以更容易地进行。Agentic RAG 还允许将工具调用纳入到 RAG 系统中,这些工具可以是自定义函数。
这是LlamaIndex中最简单的Agentic RAG形式。在这一方法中,我们有一个路由引擎(Router Engine),借助LLM的帮助,确定使用哪个工具或查询引擎来处理用户给定的查询。
如下是路由查询引擎的基本实现方式:
来源:软件架构