1. RAG基本流程介绍
- 上传文档(支持批量上传、大文件上传、秒传、断点续传; 支持多文件格式上传、手动录入上传、网页信息爬取)。
- 文档预处理(包括格式转换、数据清洗等)。
- 执行OCR识别以提取文档文字,并进行文档内容解析。
- 将文档内容分割成多个块,以便于高效处理和存储。
- 将文档分块存储至关系型数据库,并对每个分块进行向量化处理。
- 将向量化数据存储至矢量数据库,以便进行高效相似度查询。
- 对用户提问的问题进行向量化处理。
- 在矢量数据库中匹配与用户向量化的问题相似的文档向量,并获取相关文档的标识符(如文档Id)。
- 根据检索到的文档标识符,从关系型数据库中提取相应的语义化文本数据。
- 整合提取的语义化文本数据与用户查询,以形成完整的查询上下文。
- 将构建的查询上下文输入至语言模型(LLM)以生成响应。
- 语言模型(LLM)返回生成的语义化文本答案。
2. RAG过程中的难点与调整
- 不同的文档类型如何解析文档
- 文档如何chunks
- 如何embedding,选中哪个embedding模型
- 以及向量数据库的选择。
- 对用户问题的重写,扩充
- 向量库召回的是相似度,如何提升和问题的相关度,需要对检索结果的重排序
- 对prompt的压缩,避免占用过多的tokens.
Index:
Seven Failure Points When Engineering a Retrieval Augmented Generation System