ETL 管道 1. 什么是 ETL 管道ETLExtract、Transform、Load即提取、转换和加载是一种用于数据处理的数据工程框架。在 RAGRetrieval Augmented Generation检索增强生成应用中ETL 管道负责将企业原始数据加工处理最终转换为 AI 模型可以高效检索的结构化数据并存储到向量数据库中。简单来说ETL 管道负责把“人能阅读的资料”转换成“大模型能够检索和利用的知识”。2. ETL 在 RAG 中的作用RAG 的核心思想是在大模型生成答案之前先从外部知识库中检索相关信息再结合这些信息生成更准确的回答。企业中的原始数据通常包括PDF 文档Word 文件Markdown 文件网页内容数据库记录产品说明书企业内部知识文档这些数据不能直接提供给大模型使用需要经过 ETL 处理。整体流程原始数据源 | v Extract提取 | v Transform转换 | v Embedding向量化 | v Load加载 | v 向量数据库 | v RAG检索3. ETL 三个核心阶段3.1 Extract提取作用从各种数据源中读取原始数据。例如企业知识库 员工手册.pdf 产品说明.docx 售后流程.txt 数据库数据通过文档读取器PDF | v 文本内容 Word | v 文本内容最终得到Document对象例如Document: 公司退款政策 商品签收7天内可以申请退款...3.2 Transform转换作用对原始数据进行加工使其适合 AI 检索。主要包括① 文档清洗去除无效字符HTML标签重复内容例如原始p退款政策/p转换退款政策② 文档切片Chunking大模型无法直接处理超长文档因此需要拆分。例如原始员工手册.pdf 100页切分Chunk 1: 请假制度... Chunk 2: 年假制度... Chunk 3: 薪资制度...每个文本块会单独生成向量。③ Embedding向量化将文本转换为机器可计算的向量。例如文本收货7天内可以申请退款转换[ 0.213, 0.532, 0.821, ... ]这个向量表示文本在语义空间中的位置。目的让系统能够通过语义相似度找到相关内容。3.3 Load加载作用将处理后的数据保存到向量数据库。例如文本 收货7天内可以退款 向量 [0.213,0.532,0.821] 保存到 Vector Database常见向量数据库PostgreSQL pgvectorMilvusElasticsearchPineconeChroma最终形成企业知识库Vector Database -------------------------------- 文本 向量 退款政策 [0.213...] 会员规则 [0.532...] 产品说明 [0.821...] --------------------------------4. ETL 与 RAG 的关系ETL 是 RAG 的数据准备阶段。关系ETL阶段 原始资料 | v 提取 | v 转换 | v Embedding | v 向量数据库 RAG阶段 用户问题 | v 问题Embedding | v 向量检索 | v 找到相关资料 | v 增强Prompt | v LLM生成答案5. 企业应用示例场景企业客服机器人。数据准备阶段管理员上传退款政策.pdf 物流规则.pdf 会员制度.pdfETL处理PDF ↓ 文本提取 ↓ 切片 ↓ Embedding ↓ 保存向量数据库用户查询阶段用户我的商品可以退款吗系统问题Embedding ↓ 查询向量数据库 ↓ 找到退款政策 ↓ 组合Prompt ↓ LLM回答回答根据公司退款政策 商品签收7天内可以申请退款。6. Spring AI 中对应组件在 Spring AI 中ETL 流程对应ETL阶段Spring AI组件数据读取Document Reader文档转换Document Transformer文档切片TextSplitter向量生成EmbeddingModel数据存储VectorStore总结ETL 管道是 RAG 系统的知识准备流水线。它负责企业资料 ↓ 提取 ↓ 清洗 ↓ 切片 ↓ Embedding向量化 ↓ 保存向量数据库 ↓ 供RAG检索