RAG模块全局架构

RAG

注入背景知识,让大模型更懂你的业务

流程

这是一个结合LangChain和ChatGLM处理文本和查询的流程图,具体流程如下:

  1. 本地文档(Local Documents)通过非结构化加载器(Unstructured Loader)读取,转化为文本(Text)。
  2. 文本经过文本分割器(Text Splitter)处理,被拆分成文本块(Text Chunks)。
  3. 文本块进行嵌入(Embedding)操作,转化为向量后存储在向量存储(VectorStore)中。
  4. 查询(Query)同样经过嵌入操作,变为查询向量(Query Vector)。
  5. 查询向量与向量存储中的向量进行向量相似度(Vector Similarity)计算,找出相关文本块(Related Text Chunks)。
  6. 相关文本块结合提示模板(Prompt Template)生成提示(Prompt)。
  7. 提示输入到大语言模型(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做任务拆解

RAG应用架构

posted @   向着朝阳  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示