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

[智能体-259]:Retrieval流程

connection→Source→Load→Transform→Embed→Store→Retrieve)

这张图是LangChain 标准 RAG 数据全生命周期流水线,分为「入库预处理链路(前 5 步:Source→Load→Transform→Embed→Store)」+「在线检索链路(Retrieve)」两大阶段,对应向量知识库从原始文件到召回文档全流程。

一、分步拆解(从左→右)

1. Data connection → Source(原始数据源接入)

  • 数据源范围:PDF/Word/Excel、网页 HTML、Markdown、图片 OCR、聊天记录、邮件、API 接口、短视频文案、数据库文档等异构文件(图中各类图标)。
  • LangChain 对应组件:各类DocumentLoader(PyPDFLoader、WebBaseLoader、CSVLoader、UnstructuredLoader),负责对接五花八门的数据源。
  • 作用:把散落的多格式原始数据统一接入 RAG 系统。

2. Load(文档加载)

  • 功能:Loader 读取源文件,把不同格式内容统一解析为 LangChain 标准Document(page_content, metadata)对象。
  • 输出:批量原生完整文档文本,未做切割。
  • 示例:PDFLoader 读取整本 PDF,生成一个完整 Document。

3. Transform(文本切分 & 预处理)

  • 核心操作:文本拆分(Splitter)+ 清洗过滤
    1. 文本分片:RecursiveCharacterTextSplitter按字符 / 语义切块(chunk),解决超长文本向量化丢失细节;
    2. 数据清洗:剔除空行、乱码、无效符号、水印冗余内容;
  • 输出:多段短文本 Chunk(小块文档),是后续 Embedding 的最小单元。

拓展优化:ParentDocumentRetriever 在这里做大小双切片:小切片用于向量检索、大切片留存原文。

4. Embed(向量化编码)

  • 原理:调用 Embedding 模型(OpenAIEmbedding、BGE、text-embedding 系列),将自然语言 Chunk 转为多维浮点向量(如图中[0.5,0.2...]数字数组),语义相近的文本向量空间距离更近。
  • 关键点:文字→数学向量,是向量相似度检索的数学基础。

5. Store(向量持久化入库)

  • 功能:文本向量 + 原文档 + 元数据,一并存入向量数据库(Chroma/FAISS/Milvus/PGVector),永久落盘存储。
  • 两种存储:
    1. 向量:存入向量库索引,用于相似度计算;
    2. 原文 Document:向量库 / 外置文档库留存,召回后返回原文。

前 5 步统称:RAG 知识库构建阶段(离线建库,一次性批量执行)


6. Retrieve(在线检索,用户提问阶段)

用户提问触发,在线实时执行(RAG 推理阶段)

  1. 用户 Query → 同样经过 Embedding 生成提问向量;
  2. 向量库做余弦相似度计算,召回 Top-K 最相似的 Chunk 文档;
  3. 召回文档拼接进 Prompt,送入 LLM 生成答案;
  • 两种落地形态✅ 固定 RAG:Retrieve 固定嵌入 LCEL 链路,所有提问强制检索; ✅ Agent-RAG:Retriever 封装 Tool,LLM 按需自主调用检索。

二、结合之前知识点关联💡

  1. Retriever 本质:就是Retrieve环节的代码封装(BaseRetriever 所有子类:ChromaRetriever/BM25/Ensemble 等全部实现该步骤);
  2. RAG = 离线建库 (Source~Store)+ 在线检索 (Retrieve)
  3. Memory vs RAG:本流程产出的向量库 = RAG 长期硬盘记忆;LangChain Memory 是会话短期内存,不在本流程内。

三、工程优化节点(全流程可优化位置)

  1. Transform:优化分片大小、重叠值,避免上下文断裂;
  2. Embed:替换本地开源 Embedding 降低接口成本;
  3. Retrieve:MultiQueryRetriever/ContextualCompression/Ensemble 多路召回,提升召回准确率。
http://www.cnnetsun.cn/news/2760846.html

相关文章:

  • 应用AI落地三重现实:物理约束、数据漂移与执行闭环
  • AI学习型Newsletter设计:从信息过载到认知校准的实践手册
  • MuleSoft+LangChain企业级AI编排实战:打通LLM与ERP/CRM数据链路
  • 如何算是睡眠充足呢
  • XUnity.AutoTranslator架构深度解析:Unity游戏实时翻译引擎的技术实现
  • 别再踩坑了!手把手教你用Selenium驱动360极速浏览器(附版本匹配避坑指南)
  • 别再手动调参了!用Python的scipy.spatial.Delaunay快速搞定点云三角化(附实战代码)
  • Prometheus子查询实战:用rate()和_over_time函数搞定1小时负载趋势分析
  • 清算中台智能化失败率高达63%?顶级清算架构师首度公开:AI工具接入的3道合规红线与2个黄金缓冲区设计
  • 从Hello World到第一个项目:用VS Code + Rust-Analyzer插件打造你的高效Rust工作流
  • 钙钛矿电池上太空:中国航天能源技术的历史性突破
  • 从图表到结论:一份升级版16S测序报告,如何帮你快速锁定关键菌群与代谢通路?
  • 从零封装一个C#欧姆龙PLC通讯库:以NX系列Ethernet/IP为例,提升你的代码复用能力
  • GPT-4参数量与2%激活率的技术真相:MoE稀疏路由的工程本质
  • 【头部科技公司内部白皮书】:AI入职整合失败率高达68%?这3类技术债正在拖垮你的OD入职体验
  • 从数电实验箱到FPGA开发板:重温74LS138三八译码器,并用它搭建全加器电路
  • Java:Java后端开发,本地开发环境,服务器部署环境,运维支撑环境 都需要哪些类别的工具或技术 / Java后端三大环境完整清单 202606
  • 搞地图开发必懂的坐标系‘黑话’:WGS84、GCJ02、BD09、CGCS2000到底啥关系?
  • Moltbot:本地化自动化代理的系统级实践与可信执行设计
  • 为什么92%的AI项目在聚类环节失败?——资深架构师拆解工具链断层、语义漂移与评估盲区
  • 手把手教你给DevEBox STM32F401核心板刷MicroPython固件(附固件下载与常见问题排查)
  • 告别环境冲突!用Anaconda在Windows上轻松管理Python 3.8开发环境(附环境变量配置详解)
  • 别再死磕公式了!用HFSS和ADS手把手教你仿真四臂螺旋天线馈电网络(附避坑指南)
  • 别再乱码了!手把手教你用ESP_DOWNLOAD_TOOL搞定ESP8266-01S的AT固件烧录
  • 别再误解S参数和驻波了!用四臂螺旋天线功分网络讲透射频匹配的本质
  • 富芮坤FR8016HA蓝牙开发板全套工程文件:AD原理图PCB+标准封装库+可运行DEMO源码与烧录固件
  • 超越Xcode GUI:用命令行和文本编辑器高效管理iOS应用的entitlements
  • 一文读懂 CPU/GPU 算力:从参数到计算,不再被忽悠
  • 3步掌握M3U8视频下载:告别命令行复杂操作的高效GUI解决方案
  • 【AI养老革命白皮书】:2024年全球7大智能退休工具实测对比与适配指南(含养老金收益率提升37%的隐藏配置)