最近在不断地学习RAG相关的知识,这个学习过程中对于RAG的认知也在不断地改变。这篇文章主要记录一些当前最新的想法。
在之前的学习过程中,我们了解到一次RAG查询的基本工作流程如下:
在这个过程中,在将查询提交给大模型之前,会使用构建好的索引库来找到关联的上下文信息,并将整合后的结果提交给生成器去做生成。但我觉得这个过程其实可以进一步抽象:
这里使用了一个隐式的LLM(方便理解后续Agent的抽象)。可以看到此时的查询过程为:由LLM决策,使用检索工具进行检索,然后将检索工具的返回结果和查询再次交给大模型判断,此时大模型的不再调用工具,而是生成答案,返回最终结果。对上图做下简单的调整,可以得到如下所示:
将检索内容抽象为工具,那么RAG的查询流程就可以抽象为这样的流程。如果对Agent较熟悉的话,可以看出这其实就是一个Ag