RAG工作流程的执行时机如下:
-
文档加载和向量存储(前两步):
- 这部分是在项目启动时或首次创建
VectorStoreService实例时处理的 VectorStoreService类的load_document方法会:- 从数据文件夹读取文档
- 分割成小块
- 使用嵌入模型将文本转换为向量
- 存储到向量数据库中
- 计算文件MD5值进行去重,避免重复加载
- 这部分是在项目启动时或首次创建
-
用户查询处理(后四步):
- 这部分是在用户发送请求时处理的
- 当用户提问时,系统会:
- 将问题转换为向量
- 在向量空间中检索最相似的文档片段
- 将检索到的文档作为上下文传递给大语言模型
- 模型基于上下文生成准确的回答
执行流程:
- 项目启动时,
VectorStoreService会加载数据文件夹中的文档并处理为向量 - 用户发送查询时,
RagSummarizeService会调用检索器获取相关文档 - 将检索到的文档与用户查询一起传递给模型
- 模型生成基于上下文的回答
这种设计使得系统在启动时完成了耗时的文档处理工作,而在用户查询时能够快速响应,提高了系统的性能和用户体验。