RAG 的工作流程如下:
1. 索引构建阶段(离线预处理)
- 数据收集与解析:从企业知识库、文档系统、数据库中收集原始数据,或从腾讯云 COS 等云存储服务中批量导入,进行格式解析与内容提取
- 文本分块处理:将长文档按照语义边界分割为适当大小的文本块(Chunk),通常每个块包含200-500个token,并设置一定的重叠区域以保持上下文连续性
- 向量化与索引:使用嵌入模型将每个文本块转换为高维向量,并将向量与原始文本、元数据一起存储在向量数据库中
2. 检索阶段(查询时执行)
- 查询编码:将用户的自然语言查询通过相同的嵌入模型转换为向量表示
- 相似度搜索:在向量数据库中执行近似最近邻搜索(ANN),找出与查询向量最相似的Top-K个文本块
- 结果重排序:使用交叉编码器(Cross-Encoder)或重排序模型对初步检索结果进行重新打分和排序,提高检索精度
3. 增强与生成阶段
- 上下文组装:将检索到的相关文本块与原始查询组合成增强后的提示词,为生成模型提供充分的上下文信息
- 答案生成:大语言模型基于增强后的提示词生成最终响应,回答用户的问题
- 结果后处理:对生成结果进行格式优化、来源标注、安全检查等后处理操作