RAG大致分为6个流程
1. 导入 将你的数据接入系统 可能是PDF word内容 网页内容 这一步的目标就是 要拿到干净的文本内容
2. 分块 文档一般很长 直接用的会有两个问题 1大模型的上下文窗口有限 塞不下整篇文档 2我们检索时是找到最相关的一段而不是整篇文档 比如你的产品手册 可以按章节切 或者固定字数去切 切块也不能太大 太大检索不够准确 容易超出上下文限制 太小语义不够完整 上下文丢失 一般控制在500-1000字以内 相邻的块有一定的重叠 比如重叠个100个字
3. 把文字变成向量 这是RAG的核心 将你的文本内容转换为数字 这个由专门的Embedding模型完成
4. 索引 index 存进向量数据库 向量算出来的 普通数据库存结构性数据 向量数据库专门存向量 一般用的Milvus 在向量数据库中更新迭代快、社区活跃度高,同时也提供了较完善的可视化界面,上手和管理都比较方便 我们存的时候向量和原文一起存 后面检索出来要把原文给大模型看
5. 检索 检索时会把用户的问题也转换为向量 拿转换的向量去向量数据库去对比 找出相似的文本块
6. 回答 检索到的内容和用户问题打包发给大模型