当前位置: 首页 > news >正文

Complete RAG Pipeline:Retrieve → Augment → Generate 完整全流程详解

Complete RAG Pipeline:Retrieve → Augment → Generate 完整全流程详解

RAG = Retrieval-Augmented Generation,检索增强生成,用来解决大模型知识过时、幻觉、私有资料无法读取三大痛点。 标准流水线固定三段式:Retrieve(检索)→ Augment(上下文增强)→ Generate(生成回答),结合你上面那段 Python 代码同步讲解。

一、总流程逻辑

用户提问 → 向量数据库召回相关文档片段 → 把文档拼进 Prompt 作为参考上下文 → 交给 LLM 依据参考资料输出答案 核心目的:不让模型凭空编造,所有回答严格依托私有知识库

1. Retrieve 检索阶段(召回资料)

作用

把用户自然语言问题,转换成向量,在向量库中匹配相似度最高的知识库片段,拿到参考素材。

分步执行

  1. Embedding 向量化使用嵌入模型(如 all-MiniLM)将用户问题文本转为浮点向量数组:

    python

    运行

    query_embedding = model.encode(user_question).tolist()
  2. 向量库语义检索(ChromaDB)向向量集合发起查询,返回 Top-N 最相似片段(示例取 3 条)

    python

    运行

    results = collection.query( query_embeddings=[query_embedding], n_results=3 )
    • query_embeddings:接口要求向量数组,单向量需套[]
    • n_results=3:召回 3 段相关性最高的文档块
  3. 分离文本与元数据

    python

    运行

    retrieved_chunks = results['documents'][0] # 检索到的文本内容 metadatas = results['metadatas'][0] # 文档来源、章节等信息

阶段产出

若干段和用户问题强相关的知识库文本 + 每段文档的来源标记(用于文末引用)

2. Augment 上下文增强阶段(构造限定 Prompt)

作用

把上一步检索到的文档,格式化拼接进提示词,给大模型提供专属参考上下文,同时设置规则约束模型输出。

两步构成:System Prompt + User Prompt

(1)System Prompt 系统指令(全局约束规则)

固定规则,全程控制模型行为:

python

运行

system_prompt = """You are TechCorp's helpful AI assistant. Answer ONLY based on the provided context. If the answer is not in the context, say: 'I don't have that information in the provided documents.'"""

核心约束:

  • 仅能使用下文给出的文档作答
  • 无对应信息禁止编造,统一固定话术回复,杜绝幻觉

(2)拼接上下文文本

标准化格式化检索片段,区分不同文档,方便模型阅读:

python

运行

context_text = "Context from TechCorp documents:\n\n" for i, chunk in enumerate(retrieved_chunks, 1): context_text += f"[Document {i}]\n{chunk}\n\n"

输出格式示例:

plaintext

Context from TechCorp documents: [Document 1] 员工数据安全规范... [Document 2] 公司存储权限规则...

(3)组装完整用户输入 Prompt

把上下文、用户原始问题合并,引导模型输出答案:

python

运行

user_prompt = f"{context_text}\nQuestion: {user_question}\n\nAnswer:"

阶段产出

一套完整、带私有知识库参考、带行为约束的对话 Prompt

3. Generate 生成阶段(调用大模型输出答案)

作用

将 system + user 两段提示词封装为标准对话消息,调用 LLM 生成依托文档的回答,最后附加文档来源引用。

分步执行

  1. 组装 OpenAI 标准对话消息格式

python

运行

messages = [ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt} ]
  1. 调用大模型客户端推理

python

运行

response = client_llm.invoke(messages) answer = response.content
  1. 文档来源去重、添加引用标注

python

运行

sources = [meta['source'] for meta in metadatas] unique_sources = list(set(sources)) # set自动去重 final_response = f"{answer}\n\n📎 Sources: {', '.join(unique_sources)}"

阶段产出

最终完整回答:模型答案 + 参考文档来源列表,方便溯源校验

三、三段式流水线核心价值对比

表格

阶段解决什么问题关键输出
Retrieve海量知识库快速找到和问题相关内容,降低上下文长度相关文档片段 chunks
Augment规范输入格式、约束模型,强制模型以知识库为依据带参考资料的完整 Prompt
Generate基于给定资料生成通顺、合规、可溯源的回答带引用的最终答案

四、整体优缺点

优势

  1. 支持私有知识库(企业文档、本地文件、内部手册),不依赖模型训练数据
  2. 实时更新资料,无需微调模型,成本低
  3. 大幅降低大模型幻觉,可标注文档来源,便于核对

局限

  1. 检索质量决定最终效果:召回无关文档会误导模型
  2. 存在上下文长度限制,检索过多片段会超出 LLM 窗口上限

五、简易调用演示

python

运行

# 调用整条RAG流水线 result = rag_pipeline("What's the company data storage rule?") print(result)

控制台完整输出流程:

  1. 打印用户问题
  2. 打印检索日志,展示召回的文档名称与章节
  3. 打印上下文构建完成提示
  4. 调用模型生成答案
  5. 输出回答 + 文末引用来源
http://www.jsqmd.com/news/1128196/

相关文章:

  • 5步完成OneNote到Markdown数据迁移:跨平台数据同步终极指南
  • AIGC大模型轻量化:CANN量化工具链实战解析
  • 5步彻底解决macOS游戏控制器兼容性难题:Xbox驱动深度指南
  • 学术图表配色实战指南:从理论到实践的20套方案解析
  • TensorRT实战:trtexec工具从模型到引擎的进阶转换指南
  • QClaw v0.1.17版本核心功能与股票智能体搭建指南
  • AI赋能传染病建模:从SIR模型到变分推断的实战指南
  • M1 Mac mini搭建轻量级AI Agent集群实战指南
  • 工业视觉标注训练工具的两次“国内首创“:小样本缺陷增强与标注即
  • LLaMA-Factory微调数据预处理与清洗实战指南
  • ENVI 5.3 监督分类实战:支持向量机(SVM)实现85%+分类精度的3个关键步骤
  • 样本不均衡实战:从 BCEWithLogitsLoss 到 Focal Loss,在 Deepfake 检测中提升 8% 召回率
  • JSON转CSV实战:多语言实现与核心难点解析
  • 操作系统安全纵深防御:加密技术与安全审计的核心原理与实践
  • 蒙特卡洛(MC)强化学习实战:21点游戏 10000局训练,胜率提升 35%
  • DeepSeek R1 14B模型LoRA微调实战指南
  • 从Deepfake检测实战出发:详解BCEWithLogitsLoss的pos_weight调参策略
  • Java/Python开发者转型AI应用开发指南
  • 如何高效压缩视频文件:CompressO免费开源工具完整指南
  • 多GPU训练优化:从数据并行到混合并行的实战指南
  • 商业数据分析实战:从理论到五大系统应用
  • VIN码识别数据集与YOLO模型训练全攻略
  • 5个核心功能解析:为什么FastbootEnhance是Windows平台最好的Android刷机工具
  • MATLAB/Simulink强化学习:从环境建模到DDPG智能体部署实战
  • 数据可视化实战:从结构化分析到图表设计
  • Human-in-the-Loop技术指南:构建高效人机协同AI系统
  • VGGish音频特征提取实战:从模型加载到下游应用
  • AI Agent技能实战指南:从重复劳动到自动化工作流
  • 贝叶斯决策实战:从最小错误到最小风险,如何为你的AI模型选择最优策略?
  • 从Postman到JMeter:构建专业级gRPC接口测试的完整指南