AI Agent从无到有42: RAG 数据预处理实战 — 文档加载、切片与向量化

基于LangChain构建生产级RAG系统:从文档处理到AI Agent集成 RAG(检索增强生成)是一种结合信息检索和文本生成的技术框架,其核心原理是通过从知识库中检索相关信息作为上下文,提升生成模型的准确性和可信度。这种技术在AI开发中具有重要价值,能够突破模型的知识限制、提高事实准确性,并适应专业领域需求。在实际应用场景中,RAG广泛应用于智能问答、决策支持和技术文档查询等场景。构建高质量的RAG系统涉及文档加载、向量化存储、智能检索等关键环节,其中LangChain框架提供了标准化的组件接口来简化开发流程。通过合理的文本分割策略和高级检索技术,可以有效解决知识检索不准确和上下 阅读详情

纲要

  • RAG核心概念
    • 检索增强生成的原理与价值
    • 解决大模型数据时效性与领域知识缺失的关键技术
  • 数据预处理全流程
    • Document Loader:从多种数据源加载原始文档
    • Text Splitter:将大文档切分为语义连贯的片段
    • Embedding Model:将文本片段转换为向量
    • Vector Store:持久化存储向量并支持相似性检索
  • LangChain实现组件
    • TextLoader、RecursiveCharacterTextSplitter
    • FakeEmbeddings与Chroma向量数据库
  • 完整可运行代码:从文本到向量存储的端到端示例

引言

大语言模型虽然具备广泛的通用知识,但普遍存在两个固有局限:一是知识截止日期(Knowledge Cutoff Date)问题,模型无法获知训练数据截止时间之后的最新信息;二是领域知识盲区,对于企业内部文档、专业法规等非公开或垂直领域知识,模型难以给出准确回答。检索增强生成通过将外部知识库与模型生成能力相结合,在回答用户问题前先从知识库中检索相关文档片段,并将其作为上下文注入提示词,从而显著提升答案的准确性、时效性与可追溯性。

本文聚焦RAG流水线的第一环——数据预处理,介绍如何利用LangChain将原始文档转化为可供语义搜索的向量存储,并提供可直接运行的代码示例。

RAG基本原理

RAG的核心理念可概括为“先检索,后生成”。当用户提出问题时,系统执行以下步骤:

  1. 向量化用户问题:使用与知识库相同的嵌入模型将问题转换为向量。
  2. 向量相似性搜索:在向量数据库中检索与问题向量最接近的若干文档片段。
  3. 构建增强提示词:将检索到的文档片段与原始问题拼接为最终的模型输入。
  4. 调用大模型生成:模型基于提供的上下文生成可靠答案。

用户提问

问题向量化

向量相似性搜索

获取相关文档片段

拼接增强提示词

大模型生成回答

上述流程顺畅运转的前提是知识库的数据预处理——将原始文档加工成适合向量检索的格式,这也是本文的核心内容。

数据预处理四步骤

一个典型的RAG数据预处理流水线包含四个关键环节:加载 → 切片 → 嵌入 → 存储。

文档加载

LangChain提供了多种内置加载器,支持TXT、PDF、Markdown、CSV、HTML、Notion等主流格式。所有加载器的输出统一为Document对象,包含page_content(文本内容)和metadata(元数据)两个字段。TextLoader是最基础的文本文件加载器,默认将整个文件作为一个Document返回。

文本切片

大语言模型的上下文窗口有限,过长的文档无法直接输入模型,也不利于精确检索——过大的文本块会降低检索的语义粒度。切片器负责将长文本分割为较小的语义块。RecursiveCharacterTextSplitter是LangChain官方推荐的最常用的文本分割器。它通过递归地尝试多个分隔符(段落、句子、词等边界)来切分文本,尽量保持语义单元的完整性。

向量化(嵌入)

嵌入模型将文本片段映射为高维空间中的稠密向量,语义相近的文本在向量空间中距离更近。LangChain支持OpenAI、HuggingFace以及各类国产嵌入模型。为便于本地测试和流程验证,LangChain提供了FakeEmbeddings类,可生成随机向量模拟嵌入过程,无需任何外部API密钥。生产环境需替换为真实的嵌入模型。

向量存储

将向量与对应的文本片段存入向量数据库,并提供快速的相似性搜索接口。Chroma是一个轻量级的开源向量数据库,专为LLM应用设计,非常适合本地开发和原型验证。Chroma支持内存模式和持久化模式。

LangChain数据预处理实战

以下代码演示从原始文本出发,完成加载、切片、嵌入和存储的完整流程。使用FakeEmbeddings模拟嵌入,无需任何外部API即可运行。

环境准备

安装所需依赖包:

pip install langchain langchain-core langchain-community langchain-text-splitters chromadb

注意:LangChain 0.2.0及以上版本对模块结构进行了重构,文档加载器需从langchain_community导入,文本分割器需从langchain_text_splitters导入。Chroma的导入可通过langchain_community.vectorstores或独立的langchain_chroma包。

完整代码

from langchain_community.document_loaders import TextLoader
from langchain_community.embeddings import FakeEmbeddings
from langchain_community.vectorstores import Chroma
from langchain_core.documents import Document
from langchain_text_splitters import RecursiveCharacterTextSplitter

# ---------- 1. 准备原始文本 ----------
# 模拟一段产品手册
raw_text = """
产品名称:智能温控水杯 X-200
功能描述:
1. 实时显示水温,精确到 ±0.5°C。
2. 支持手机 App 远程设置目标温度。
3. 内置 5000mAh 电池,可续航 48 小时。
4. 采用 316 不锈钢内胆,安全健康。
5. 具有过热保护功能,超过 99°C 自动断电。
使用说明:
- 首次使用前请用清水冲洗内胆。
- 长按电源键 3 秒开机,蓝牙自动配对。
- 可通过 App 调节温度范围:40°C~100°C。
注意事项:
- 请勿将杯体浸入水中清洗。
- 充电时请使用 5V/2A 适配器。
"""

# ---------- 2. 文档加载 ----------
# 从字符串直接构造 Document 列表(实际使用中可从文件加载)
docs = [Document(page_content=raw_text.strip(), metadata={"source": "产品手册"})]
print(f"加载文档数: {len(docs)}")
print(f"文档长度: {len(docs[0].page_content)} 字符")

# ---------- 3. 文本切片 ----------
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=100,      # 每个块的最大字符数
    chunk_overlap=20,    # 相邻块之间的重叠字符数,保证语义连贯
    separators=["\n\n", "\n", "。", ",", " ", ""]  # 优先按段落、换行、标点切分
)
split_docs = text_splitter.split_documents(docs)
print(f"切片数量: {len(split_docs)}")
for i, doc in enumerate(split_docs):
    print(f"切片 {i+1}: {doc.page_content[:50]}... (长度 {len(doc.page_content)})")

# ---------- 4. 向量化与存储 ----------
# 使用 FakeEmbeddings 模拟嵌入,维度设为 128
embeddings = FakeEmbeddings(size=128)
# 初始化 Chroma 向量库(默认存储于内存)
vectorstore = Chroma.from_documents(
    documents=split_docs,
    embedding=embeddings,
    collection_name="product_manual"
)
print(f"向量库中文档数量: {vectorstore._collection.count()}")

# ---------- 5. 相似性检索测试 ----------
query = "如何给水杯充电?"
print(f"\n查询: {query}")
# 将查询向量化并搜索最相似的 2 个文档
results = vectorstore.similarity_search(query, k=2)
for idx, doc in enumerate(results):
    print(f"检索结果 {idx+1}: {doc.page_content}")

运行结果解析

  • 加载阶段:原始文本被封装为一个Document对象,包含文本内容和元数据。
  • 切片阶段:根据chunk_size=100和chunk_overlap=20,文本被分割为多个语义块,每个块尽可能保持语义完整。
  • 嵌入与存储阶段:FakeEmbeddings生成随机向量(维度128)并存入Chroma向量库。实际应用中应替换为OpenAIEmbeddings或HuggingFaceEmbeddings。
  • 检索测试阶段:对于“如何给水杯充电?”这一查询,向量搜索返回了包含充电相关信息的文档片段,验证了语义匹配的基本能力。

注意事项与最佳实践

  • 切片大小选择:chunk_size需根据嵌入模型的上下文窗口和业务需求调整。通用场景下500~1000字符通常效果较好,过小会丢失上下文,过大会降低检索精度。
  • 重叠尺寸设置:保留chunk_overlap可避免关键信息在切片边界被截断,一般设为chunk_size的10%~20%。
  • 嵌入模型选型:中文场景推荐使用OpenAI的text-embedding-ada-002或HuggingFace的bge-large-zh-v1.5,两者均具备良好的中文语义理解能力。
  • 向量数据库选型:原型开发阶段可使用Chroma(内存模式)或FAISS;生产环境可考虑Pinecone、Weaviate或Milvus等具备分布式能力的方案。
  • 导入路径注意事项:LangChain 0.2.0及以上版本中,TextLoader应从langchain_community.document_loaders导入,RecursiveCharacterTextSplitter应从langchain_text_splitters导入,Chroma可从langchain_community.vectorstores或langchain_chroma导入。

总结

数据预处理是构建高质量RAG应用的基石。通过LangChain的文档加载器、文本分割器、嵌入模型和向量数据库四件套,开发者可以快速将海量非结构化文本转化为可供语义搜索的知识库。

本文的完整代码使用FakeEmbeddings模拟嵌入,无需任何外部API密钥,便于初学者在本地即刻体验RAG预处理全流程。

掌握这些基础后,下一步可将检索结果接入大模型,构建完整的智能问答系统。

AI实战:RAG、Agent与LoRA技术落地指南 检索增强生成(RAG)和智能体(Agent)是当前AI领域的热门技术,通过结合信息检索与生成模型的能力,显著提升任务完成质量。RAG技术利用向量化检索与生成模型的协同,有效解决传统生成模型的幻觉问题;Agent技术则通过模块化工具封装和流程控制,实现复杂任务的自动化处理。在模型优化方面,LoRA等参数高效微调技术大幅降低计算资源需求,使大模型在有限资源下快速适配新场景。这些技术在智能客服、电商导购等实际业务中已证明价值,如某电商平台通过Agent实现转化率提升35%。工程实践中需注意文档分块策略、工具解耦设 阅读详情

相关推荐

从RAG到智能助手:企业知识库向量化与AI应用实战

向量数据库和检索增强生成(RAG)是当前企业知识管理智能化的核心技术。向量化技术通过将非结构化文本转化为高维向量,使计算机能够理解语义相似性,其原理基于深度学习模型捕捉文本的深层特征。这项技术的核心价值在于突破传统关键词匹配的局限,实现基于语义的精准检索,从而大幅提升信息获取效率。在实际应用场景中,它为企业构建智能知识库、实现上下文感知问答系统提供了基础。本文以pgvector和Ollama为例,深入探讨了如何通过文档解析、向量化存储与大模型集成,将散乱的企业文档转化为可对话、可执行的智能助手,并特别分享了

weixin_33782386的博客 397

从0到1用LangChain搭建RAG知识库与AI Agent实战指南

大语言模型(LLM)虽然强大,但受限于训练数据和静态知识,无法直接回答企业私有文档或实时数据。RAG(检索增强生成)通过外挂向量数据库解决知识不足,Agent则赋予模型调用工具、自主决策的能力。本文以LangChain为主线,系统拆解RAG五步闭环:文档加载、拆分、向量化、检索与生成,并带你用Chroma构建一个可运行的知识库问答系统。随后,通过create_tool_calling_agent实现具备工具调用能力的智能代理,展示Agentic RAG的落地形态。从环境配置、完整代码到常见坑位排查,再到工程

weixin_34122810的博客 403

LangChain RAG系统实战:从文档加载到智能体部署完整指南

检索增强生成(RAG)是一种结合检索和生成能力的人工智能技术,其核心原理是通过向量化技术将文档内容转换为高维向量表示,再通过相似度搜索实现语义级别的信息检索。RAG技术的价值在于能够为大语言模型提供实时、准确的外部知识支持,有效解决模型幻觉问题。在AI Agent开发、文档问答、知识库检索等应用场景中,RAG系统发挥着关键作用。本文基于LangChain框架和Deep Agents技术,详细讲解如何构建生产级的RAG系统,涵盖文档加载、向量化存储、智能体调度等核心环节,提供可直接运行的代码示例和部署方案,帮

weixin_29053073的博客 264

从RAG到AI Agent:大模型应用开发核心技术与面试实战指南

检索增强生成(RAG)和AI Agent是当前构建大语言模型(LLM)应用的两大核心技术范式。RAG通过“先检索,后生成”的架构,为LLM注入精准、可追溯的外部知识,有效解决了模型的知识截止性和幻觉问题,其核心价值在于平衡成本与效果,适用于知识库问答等需要实时性和可解释性的场景。AI Agent则通过规划、记忆、工具使用和反思的决策循环,赋予LLM感知与行动的能力,使其能调用外部API或函数完成复杂任务。理解这两者的原理、关系及实现细节,是构建高效、可靠大模型应用的基础。本文以**LangChain**框架

cuyi7076的博客 538

AI Agent知识获取管道:RAG基础与TypeScript实战

大模型的知识边界受限于训练数据,RAG(检索增强生成)通过外部知识检索突破这一限制。其原理是将文档切块、向量化、存储,再根据查询检索相关片段并注入生成过程。技术价值在于提升回答准确性和可追溯性,适用于内部知识问答、最新文档查询等场景。热词“rag和mcp区别”表明RAG聚焦知识来源,MCP解决交互协议,两者互补。本文以TypeScript为例,详解RAG管道各环节及实操技巧。

weixin_42625070的博客 214

从RAG到Agent:手把手构建企业级AI知识库与智能体

在人工智能应用开发领域,检索增强生成(RAG)技术通过结合外部知识源与大语言模型,有效解决了模型知识滞后和幻觉问题。其核心原理是将用户查询与向量化存储的私有文档进行相似度匹配,检索出最相关的上下文片段,再交由大模型生成准确、可追溯的答案。这项技术的价值在于为企业提供了低成本、高效率的知识管理方案,特别适用于构建内部知识库、智能客服等场景。在此基础上,智能体(Agent)框架通过赋予大模型工具调用和任务规划能力,使其从被动问答升级为主动执行者,能够处理多步骤复杂任务。本文以RAG和Agent为核心,结合Lan

cqbh2011的博客 439

【值得收藏】后端研发的AI突围:从零构建Multi-Agent RAG架构实战指南

本文是后端研发人员分享的AI实战经验,重点阐述了RAG架构在保险业务中的演进与应用。从基础RAG到混合式检索架构(Graph RAG+DeepSearch+反思验证),作者详细介绍了技术实现细节和团队构建的多智能体RAG平台。文章强调,面对AI快速发展带来的焦虑,将微服务架构应用到AI领域是有效解决方案,并为想进入AI领域的程序员提供了实践参考。

qq_46094651的博客 1230

AI大模型应用开发全流程:从RAG到Agent智能体的实战指南

AI大模型作为基于Transformer架构的深度学习技术,通过海量数据预训练获得强大的语言理解和生成能力。其核心原理在于利用自注意力机制处理序列数据,具备出色的泛化性能和上下文理解优势。在工程实践中,检索增强生成(RAG)技术通过结合外部知识库检索与大模型生成能力,有效提升了回答的准确性和相关性。而Agent智能体开发则赋予系统自主任务理解、规划执行和工具调用的能力。这些技术在智能客服、文档分析、代码助手等场景中展现巨大价值。本文聚焦RAG系统架构设计、LangChain框架应用等热门前沿领域,提供从环境

weixin_30879833的博客 451

AI大模型实战:从Prompt到Agent与RAG的完整开发指南

Prompt工程作为与大模型交互的核心技术,通过结构化约束条件设计引导AI生成精准输出。其原理在于将自然语言指令转化为可执行的任务描述,在客服、内容生成等场景中提升自动化效率。Agent技术在此基础上实现多步骤任务编排,结合状态管理处理复杂工作流。RAG(检索增强生成)通过向量化检索外部知识库增强模型事实准确性,广泛应用于智能问答和文档分析。本文基于Prompt调试、Agent开发、RAG配置等热词,系统讲解从单条指令设计到完整AI应用落地的工程实践,涵盖Cursor工具链集成与本地调试技巧,帮助开发者快速

weixin_29083475的博客 310

LangChain实战:从零构建企业级RAG与Agent应用

检索增强生成(RAG)和智能体(Agent)是当前大模型应用开发中的核心技术范式。RAG通过将外部知识库向量化并与大模型结合,有效解决了模型幻觉和知识截止问题,使模型能够基于私有数据生成准确回答。其核心流程包括文档索引、向量检索和上下文增强生成。智能体则赋予大模型规划决策和工具调用的能力,通过ReAct等框架实现复杂任务的自动化执行。在工程实践中,LangChain作为标准化组件库,提供了构建这些系统的设计模式和通用接口,极大简化了开发流程。本文聚焦于企业级应用场景,深入探讨如何利用LangChain生态,

ithome 450

基于RAG与AI Agent构建个人知识库:让大模型拥有专属记忆

检索增强生成(RAG)是一种将外部知识库与大语言模型结合的技术范式,通过将用户查询与知识库中的相关文档片段进行语义匹配,为模型提供精准的上下文信息,从而生成更准确、更具针对性的回答。其核心原理在于利用向量数据库实现高效的语义检索,将非结构化的文档数据转化为可计算的向量表示。这项技术的核心价值在于解决了通用大模型缺乏领域知识和实时信息更新的局限性,显著提升了AI在专业问答、文档分析和个性化辅助等场景下的实用性。在实际工程中,常借助LangChain等AI Agent框架来编排RAG工作流,并结合类似MCP的协

weixin_30664615的博客 430

大模型框架实战指南:RAG与Agent全解析

随着大语言模型(LLM)能力的爆发,如何高效、可靠地将其集成到实际应用中,已成为开发者面临的核心挑战。各类大模型框架应运而生,它们通过提供标准化的组件、工具和最佳实践,极大地降低了AI应用开发的门槛。本文将深入剖析当前主流的大模型框架类型、核心特性,并结合具体代码示例,展示如何利用这些框架构建智能应用。

如果频繁就私信一下呢 275

企业级AI落地实战:Agent、RAG与MCP技术栈集成指南

如果你正在负责一个大型企业级项目的技术架构,最近一定被这两个问题困扰: 老板/业务方频繁追问:“我们的系统能不能接入AI?能不能让大模型帮我们处理业务?” 当你真正开始调研,却发现简单的ChatGPT API调用远不能满足需求。代码库、私有文档、业务系统、数据库……这些复杂环境如何让AI理解并安全操作? 这不是一个简单的“调个API”就能解决的问题。它涉及到如何让AI在可控、安全、准确的前提下,深度融入企业已有的、复杂的、高并发的技术栈。盲目接入,轻则产出“幻觉”答案,重则引发数据泄露或系统故障。 本文要解

weixin_33835103的博客 410

基于LangChain的RAG AI Agent开发实战:从原理到生产部署

Transformer架构作为现代自然语言处理的核心技术,通过自注意力机制实现了对序列数据的并行处理和长距离依赖捕获。这一原理为AI Agent的智能决策提供了基础支撑,使其能够理解用户意图、管理上下文并选择合适工具。在工程实践中,RAG(检索增强生成)技术通过结合检索器和生成器,让模型能够访问外部知识库,显著提升了回答的准确性和事实性。基于LangChain框架的开发进一步简化了AI Agent的构建流程,提供了模块化的工具系统、智能体架构和记忆管理。这些技术的结合在文档问答、智能客服等场景中展现出巨大价

weixin_30617737的博客 437

RAG落地的三大工程陷阱:文档预处理、语义断层与意图漂移

RAG(检索增强生成)本质上是将非结构化文档知识注入大语言模型的技术路径,其核心原理在于通过向量检索定位相关文本片段,再由LLM基于上下文生成答案。然而真实场景中,90%的失败并非源于Embedding或向量库选型,而是卡在文档预处理的脏数据治理、检索结果与提示词之间的语义断层、以及用户提问背后的意图漂移这三类工程级问题。这些问题直接决定业务问题回答准确率,而非单纯余弦相似度。典型应用场景包括企业知识库、智能客服、合规问答与技术文档助手等需要高事实保真与业务适配的系统。本文聚焦RAG工程落地中最易被忽略却最

weixin_34275734的博客 418

AI×Agent×Data学习路线与面试攻略:从大模型到RAG实战

在人工智能技术快速演进的今天,大模型、智能体与数据工程不再是孤立的领域,而是构成完整技术链路的核心要素。大模型提供了理解与生成的引擎,智能体赋予模型感知与行动的能力,而高质量的数据则是驱动这一切的燃料。从Transformer原理到Prompt工程,从函数调用到ReAct模式,从向量检索到RAG流水线,每一层技术都环环相扣。企业落地AI应用时,往往需要将数据接入、模型推理与智能决策整合为一体化方案,这也使得掌握AI、Agent与Data融合能力的开发者成为稀缺人才。无论是构建知识库问答系统,还是开发多智能体

weixin_33836874的博客 448

【实战智能体】《大模型应用开发_动手做AI_Agent》_147.[第8章 Agent实战之RAG知识检索] 获取并加载电商财报文件——数据预处理实战

文章摘要:本文针对RAG(检索增强生成)系统中电商财报数据处理的关键问题,提出了系统化的解决方案。从数据获取到向量化准备,详细拆解了六个核心环节:1)多源数据标准化采集与元数据管理;2)基于文档结构的差异化解析策略;3)噪声过滤与文本标准化;4)保持语义完整性的智能分块;5)业务导向的元数据标注体系;6)质量可控的加载准备流程。重点揭示了常见错误(如暴力文本分割、结构信息丢失等)导致的AI理解偏差,并提供了代码级的优化方案(如异步下载代理池、PDF分层解析等),帮助开发者将原始财报转化为AI可理解的优质知识

63

【实战解析】Ubuntu双网卡冲突:如何解决同一网段下网关无法访问及上网问题

本文深入解析Ubuntu服务器双网卡配置在同一网段时引发的路由冲突问题,导致网关无法ping通及无法上网。通过分析路由表与Metric值原理,提供使用route命令调整优先级及修改Netplan配置文件的实战解决方案,确保主次路由明确,一劳永逸解决网络冲突。

f9g0h的博客 280

AI Agent开发实战:从RAG到LangGraph的完整学习路线

大模型应用开发中,如何构建一个可落地、可验证的AI Agent是开发者关注的核心问题。Agent并非简单的对话机器人,而是具备决策循环、工具调用与状态管理的智能系统。RAG(检索增强生成)作为基础能力,让模型能够基于私有知识库生成可溯源的回答;而LangGraph通过图结构编排节点与条件路由,赋予Agent处理复杂分支和循环任务的能力。这样的系统在知识库问答、日志分析、私有化部署等场景中具有明确的工程价值。对于资源有限的开发者,借助开源技术栈和量化模型,配合规范的调优与对齐手段,完全可以在普通硬件上跑通一条

weixin_30567225的博客 400

智能车实战——极速越野组GPS与惯导融合定位导航全解析

本文深入解析了智能车极速越野组中GPS与惯导模块的融合定位导航技术。通过对比GPS的全局定位与惯导的高频姿态感知,详细阐述了如何利用MM32SPN27主控,将两者数据融合以实现精准、实时的车辆控制。内容涵盖硬件选型、软件数据处理、PID控制及系统调试等实战环节,为智能车开发者提供了一套完整的解决方案。

pz8901234的博客 1204

B站自动答题协议分析

使用Python写了一个自动答题机器人!基于接口协议实现且包含点选验证码识别

吴秋霖的博客 2653
上一篇: AI Agent从无到有41: LangChain 链的高级应用:函数、记忆、路由与容错
下一篇: AI Agent从无到有43: LangChain 数据加载器全解析 — PDF、网页、CSV 与自定义 Loader
Wang's Blog
博客等级 码龄12年 7421粉丝 2411原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值