行业资讯
📅 2026/8/9 7:44:56
RAG检索增强
目录1 RAG 完整原理与优缺点1.1 大模型原生三大缺陷1.2 RAG 概念1.3 RAG 优缺点1.4 RAG 两大阶段2 文档加载器 Loader2.1 Markdown 加载2.2 Word Docx 加载2.3 PDF 专业解析 MinerU3 文本切分 RecursiveCharacterTextSplitter3.1 为什么必须切片3.2 切分策略对比3.3 代码实战4 Embedding 文本嵌入4.1 嵌入模型作用4.2 主流开源嵌入模型4.3 LangChain 本地嵌入调用5 本章小结1 RAG 完整原理与优缺点1.1 大模型原生三大缺陷1 知识截止无法获取实时 / 私有资料 2 专业领域知识缺失容易幻觉编造 3 长文本输入效果衰减上下文利用率低1.2 RAG 概念检索增强生成先检索私有文档把相关片段塞进 Prompt 再交给 LLM 回答1.3 RAG 优缺点优点 1 不用微调低成本更新知识库 2 答案可溯源大幅降低幻觉 3 数据不用送入模型训练保护隐私 缺点 1 多一步检索接口延迟升高 2 检索质量直接决定回答准确性1.4 RAG 两大阶段1 索引阶段加载文档 → 切片 → 向量化 → 存入向量库 2 问答阶段问题向量化 → 相似检索 → 拼接上下文 → LLM 生成2 文档加载器 Loader所有加载器统一接口load()/lazy_load()输出 Document 对象page_content 文本 metadata 元数据2.1 Markdown 加载pip install unstructured[md]fromlangchain_community.document_loadersimportUnstructuredMarkdownLoader loaderUnstructuredMarkdown(./test.md,modeelements)docsloader.load()2.2 Word Docx 加载fromlangchain_community.document_loadersimportUnstructuredWordDocumentLoader loaderUnstructuredWordDocument(demo.docx,modeelements)2.3 PDF 专业解析 MinerU普通加载器无法识别表格、公式、双栏 PDFMinerU 转为标准 Markdown 1 调用官方 API 上传 PDF 2 获取解析后 MD 文本再切片3 文本切分 RecursiveCharacterTextSplitter3.1 为什么必须切片1 模型有最大 token 限制超长文本截断丢失信息 2 完整文档噪声多检索无关内容干扰答案3.2 切分策略对比1 固定字符切分容易切断句子语义断裂 2 递归分隔符切分推荐优先按段落、句号分割保证语义完整 3 语义切分按向量距离分割效果好但速度慢3.3 代码实战fromlangchain_text_splittersimportRecursiveCharacterTextSplitter splitterRecursiveCharacterTextSplitter(separators[\n\n,\n,。,,],chunk_size400,chunk_overlap50# 块重叠解决段落分割丢失上下文)chunkssplitter.split_documents(docs)4 Embedding 文本嵌入4.1 嵌入模型作用文本转为多维浮点向量语义相近向量距离近用于相似度检索4.2 主流开源嵌入模型表格模型特点BGE-small/base/large-zh中文最优轻量模型BGE-M3支持稠密 稀疏双向量text-embedding 系列OpenAI 付费向量4.3 LangChain 本地嵌入调用pip install langchain-huggingface sentence-transformersfromlangchain_huggingfaceimportHuggingFaceEmbeddings embedHuggingFaceEmbeddings(model_name./bge-base-zh-v1.5)vecembed.embed_query(大模型RAG)5 本章小结1 RAG 分为「建索引」和「问答」两大流程 2 Loader 支持 MD/DOCX/PDF复杂 PDF 优先 MinerU 3 RecursiveCharacterTextSplitter 是工业标准切片工具chunk_overlap 防止语义断裂 4 Embedding 将文本转为向量是向量检索基础