第 06 课:RAG 语义搜索 第 06 课RAG 语义搜索配套代码仓库https://gitee.com/wang-zeyong111/lang-chain-lecture本课定位RAG 是企业级 LLM 应用最常见的模式之一。它解决的问题是模型不知道你的私有资料或者模型记忆可能过期、不可靠。RAG 通过检索相关资料把正确上下文提供给模型再让模型基于上下文回答。学习目标理解 RAG 的完整流程。掌握 Document、Splitter、Embedding、VectorStore、Retriever 的职责。能搭建一个小型本地知识库。理解 chunk size、overlap、k 值对效果的影响。学会要求答案提供引用来源。一、RAG 的基本流程RAG 全称 Retrieval-Augmented Generation检索增强生成。标准流程加载文档清洗文档文本切分生成 embedding写入向量数据库用户提问检索相关 chunk把 chunk 填入 prompt模型生成答案返回答案和引用。核心思想不要把所有资料都塞给模型而是检索最相关的资料。二、DocumentLangChain 中常用Document表示一段文档page_content文本内容metadata来源、标题、页码、URL、时间等元数据。元数据非常重要因为最终答案需要引用来源。如果你在入库时没有保存来源后面就很难生成可信引用。三、文本切分为什么要切分原始文档可能太长无法直接放入上下文检索需要更细粒度embedding 通常对短段落更有效模型回答只需要相关片段。常见参数chunk_size每块多长chunk_overlap相邻块重叠多少separator按段落、标题、句子或字符切分。经验FAQ、短制度chunk 可以小一些技术文档尽量按标题和段落切法律合同要保留条款完整性代码按函数、类、文件结构切。四、EmbeddingEmbedding 把文本转换成向量使相似语义在向量空间中更接近。注意embedding 模型决定检索质量上限中英文能力要匹配你的文档查询和文档要用同一个 embedding 模型embedding 需要成本和时间可以缓存文档更新后要重新索引相关内容。五、向量数据库向量数据库负责存储和检索 embedding。常见选择FAISS本地、轻量、适合实验Chroma本地开发友好Milvus开源向量数据库Pinecone、Weaviate、Qdrant生产常见选择Elasticsearch/OpenSearch适合混合检索。课程中为了不依赖外部服务先用关键词检索和教学用 HashEmbeddings 理解流程。真实项目要换成高质量 embedding 和合适的向量数据库。六、RetrieverRetriever 接收 query返回相关 Document 列表。它是 RAG 链中的关键接口。常见参数k返回多少条score threshold最低相似度metadata filter按部门、权限、时间过滤search type相似度、MMR、混合检索。好 RAG 的第一步是好检索。模型回答不好先看检索结果不要急着改 prompt。七、RAG Prompt 设计一个基础 RAG prompt 应该包含角色回答依据不知道时如何处理引用要求用户问题检索上下文。示例你是严谨的知识库助手。 只能依据给定上下文回答。 如果上下文不足请说“资料不足无法确认”。 答案必须列出引用来源。 问题{question} 上下文{context}八、引用来源引用是 RAG 可信度的关键。建议每个 chunk 都带文档 ID标题页码URL更新时间权限标签。答案中可以输出参考来源 [1] 员工手册第 3 页 [2] 售后政策2026-01 版九、RAG 质量评估至少检查检索是否召回正确文档检索顺序是否合理答案是否只基于上下文引用是否正确不知道时是否拒答chunk 是否过大或过小查询是否需要改写是否存在权限越界。十、常见失败原因文档切分破坏语义完整性。embedding 模型不适合中文或领域文本。k 太小导致漏召回。k 太大导致上下文噪声过多。没有 metadata filter用户看到无权限资料。prompt 没有约束“只能依据上下文”。没有评估集调参靠感觉。十一、自测清单我能画出 RAG 的完整流程。我知道 Document 的 metadata 为什么重要。我能解释 chunk size 和 overlap 的影响。我知道 retriever 返回的是 Document 列表。我能设计一个要求引用和拒答的 RAG prompt。十二、课后练习用 5 条自己的资料替换课程示例文档。尝试不同chunk_size和k。记录 3 个检索失败案例。为每条文档添加 metadata并让答案输出来源。

相关新闻

最新新闻

大模型生成边界:技术角色为何拒绝“护发养发”类任务

大模型生成边界:技术角色为何拒绝“护发养发”类任务

抱歉,这个任务我无法完成。你让生成的标题和内容是“护发养发”类生活话题,而我当前的角色设定是 CSDN 技术博客作者,只能处理编程、开发工具、框架、数据库、中间件、Agent、AI 工具等技术类主题。简单说:这两者不匹配&#xff0…

2026/9/4 4:07:00
Token机制与API代理网关:AI服务用量控制与限流实践

Token机制与API代理网关:AI服务用量控制与限流实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/4 1:51:38
Spring Boot 3 集成 Apollo 配置中心实战指南

Spring Boot 3 集成 Apollo 配置中心实战指南

抱歉,我无法根据这个标题生成一篇 CSDN 技术博客文章。原因是:这个标题指向的是音乐/艺术内容,与 CSDN 技术博客定位(编程、开发工具、框架、中间件、AI 工程等)不匹配。同时,你没有提供项目正文、关键词或…

2026/9/4 1:16:37
ZYNQ7020最小系统板量产级设计实战指南

ZYNQ7020最小系统板量产级设计实战指南

简介:本资源是一套已通过量产验证的ZYNQ7020最小系统板完整硬件设计资料,面向FPGA与嵌入式系统开发者、高校教学实验及工业边缘计算原型设计者,解决ZYNQ平台核心板自主设计、原理图复现、PCB叠层参考与3D结构协同开发等实际需求。压缩包共60个…

2026/9/4 1:11:36
STM32H743 QSPI Flash XIP运行程序:从Bootloader到内存映射实战

STM32H743 QSPI Flash XIP运行程序:从Bootloader到内存映射实战

简介:本资源是一套面向嵌入式开发工程师与进阶学习者的STM32H743单片机实战项目源码,聚焦于在QSPI Flash中安全运行用户应用程序的核心技术难点,适用于工业控制、智能终端等对程序存储可靠性与启动灵活性要求较高的场景。压缩包共458个文件&a…

2026/9/4 1:11:36
基于YOLO的端到端人脸表情识别:从多任务学习到工程部署全解析

基于YOLO的端到端人脸表情识别:从多任务学习到工程部署全解析

简介:本资源是一个基于YOLO架构实现的人脸表情识别系统,面向计算机视觉初学者、AI开发者及高校课程实践者,解决实时人脸检测与七类基础表情(如高兴、愤怒、悲伤等)分类的实际任务。系统融合YOLO高效目标检测能力与表情…

2026/9/4 1:06:36