RAG模块全局架构
目录
RAG
注入背景知识,让大模型更懂你的业务
流程
这是一个结合LangChain和ChatGLM处理文本和查询的流程图,具体流程如下:
- 本地文档(Local Documents)通过非结构化加载器(Unstructured Loader)读取,转化为文本(Text)。
- 文本经过文本分割器(Text Splitter)处理,被拆分成文本块(Text Chunks)。
- 文本块进行嵌入(Embedding)操作,转化为向量后存储在向量存储(VectorStore)中。
- 查询(Query)同样经过嵌入操作,变为查询向量(Query Vector)。
- 查询向量与向量存储中的向量进行向量相似度(Vector Similarity)计算,找出相关文本块(Related Text Chunks)。
- 相关文本块结合提示模板(Prompt Template)生成提示(Prompt)。
- 提示输入到大语言模型(LLM)中,最终输出答案(Answer)。
子流程1: 知识更新 (上图的1-7)--数据准备阶段
数据提取和清晰
1 提取企业的数据从PDF,PPT,WORD,文件里面的文字
2 清洗,结构的整理
数据切分
切割的目的:如果直接把知识给模型, 会影响模型的回应能力。比如直接把一本书的内容丢给模型()
影响模型找到知识的能力,比如你给一堆书让学生做开卷开始,学习查询也查询不赢。
需要对知识进行切割(命令 Text Splitter),生成Text chunks(业务对象)。
切割的要求
1 语义上足够垂直:一个知识只包含一个意思
2 内容足够完善:描述某个东西就在一个片段里面,不应该在很多个片段里面。
Embedding 嵌入
使用向量模型转化成向量
存储(向量数据库)
子流程2 知识检索/ 增强生成
1 用户去知识库找知识
2 拿到知识库的知识+问题 = 新的提示词给模型,让模型回答
查询(Query)
Embedding 嵌入生成向量
通过向量模型,把查询的请求转化为向量(Query Vector)
查询向量数据库返回Related Text Chunks (一阶段检索)
两阶段检索。 向量数据为了提升检索效率,牺牲了准确率。目的:提高召回率。 第一阶段检索足够多的知识
查询向量与向量存储中的向量进行向量相似度(Vector Similarity)计算,找出相关文本块(Related Text Chunks)。
重排序 rerank (二阶段精排)
效果评估
RAG回答问题的准确率是多少?如何优化
相关文本块结合提示模板(Prompt Template)生成提示(Prompt)。
把用户的问题+结合重排序的结果以prompt的形式给到大模型
提示输入到大语言模型(LLM)中,最终输出答案(Answer)。
FAQ
RAG和Agent是什么关系?
完全独立, Agent需要RAG给模型补充知识。RAG需要Agent做任务拆解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南