】3.1 本地化RAG方案)
LLM使用关键问题幻觉问题传统LLM依赖静态训练数据会生成看似合理但缺乏事实依据的内容如捏造法律条文、给出错误医学诊断询问2024年北京天气可能因过时数据给出错误答案。时效性不足LLM知识截止于训练时间点无法动态更新信息如客服机器人不能提供最新促销信息。领域知识缺失LLM缺乏企业私有数据支持回答通用缺乏针对性。数据安全风险将敏感信息放公有云LLM上有泄露风险对金融、医疗等有严格隐私合规要求的行业无法容忍。RAG概述定义RAG全称retrieval augmented generation通过结合外部知识库检索功能和生成模型动态提升回答准确性和时效性。工作流程分为检索从知识库找与用户问题最相关文档片段方式有向量检索、关键词检索等、增强将找到片段作为额外上下文信息输入生成模型、生成模型融合自身知识和检索到的上下文信息生成完整回答三个步骤。知识问答流程数据准备阶段用unstructured loader将本地非结构化文档如PDF加载并转化为文本数据text splitter将长文本分割成小文本片段embedding将文本片段转换成向量表示Vector store存储这些向量可高效检索相似向量。查询和检索阶段将用户问题转换为向量表示计算其与Vector store中所有向量的相似度找到最相关文本片段。答案生成阶段将用户问题和相关文本片段组合成prompt定义prompt结构引导LLM给出准确答案LLM基于prompt生成答案。RAG实际应用场景智能客服领域可动态调用商品数据库提供精准库存和价格查询让客服直接获取最新信息为客户提供准确答案。企业知识库能解析非结构化文档支持用户用自然语言检索快速找到关键信息提高工作效率。医疗咨询方面结合最新医学文献为医生提供诊断建议减少模型编造风险提升医疗决策可靠性。教育辅助领域根据教材和学术论文为学生生成个性化学习答案帮助学生更好理解知识点。RAG核心组成部分知识库负责存储各种形式的数据包括文本、文件、PDF文档、数据库等。检索器主要使用向量检索技术如Faiss从知识库中高效找到最相关知识片段。生成模型选择本地化部署的大型语言模型如Deepseek 1.5B或CHATGLM3便于控制成本和数据安全。增强策略采用多阶段检索、结合语义信息和关键词、使用重排序模型优化检索结果提升答案质量。RAG架构流程加载PDF文档分割成小文本块进行向量化处理并存储在向量数据库用户提出问题后将问题向量化在向量数据库搜索最相似文本块将检索到的文本块与问题输入大型语言模型如Deepseek生成答案。优势提高准确性减少语言模型产生幻觉情况保持知识更新可通过更新向量数据库保持知识库最新具有可追溯性能追溯答案出处保证透明度和可信度。智能小助手构建回顾需求分析和设计构建智能小助手需明确需求和精心设计架构明确要解决的问题、服务的用户以及如何高效完成任务。Rag流程实现包括知识库构建有效组织和准备知识库让模型获取信息、知识检索利用检索算法从知识库找相关信息、生成将检索信息与用户问题结合用Deepseek模型生成准确流畅答案三个关键环节。LangChain标准检索增强流程整张图分为两大阶段知识库预处理阶段离线入库、用户提问检索生成阶段在线问答虚线框为LangChain组件体系逐个名词解释如下一、离线预处理链路构建向量知识库Local Documents 本地文档数据源企业/个人本地私有文件包含PDF、Word、TXT、Markdown、PPT等非结构化资料是整个问答系统的知识来源。Unstructured Loader 非结构化加载器LangChain内置工具作用读取各类格式本地文件解析提取文件里纯文本内容屏蔽不同文件格式差异统一输出原始文本。Text 原始文本Loader提取出来未经拆分的完整长篇文本单份文档全文内容存在篇幅过长、语义混杂问题不能直接向量化。Text Splitter 文本分割器核心预处理工具把长篇原始文本按固定长度、语义边界切分成短小片段Chunk。目的解决大文本向量语义混杂、检索匹配不准、LLM上下文长度超限问题。Text Chunks 文本片段/文本块分割后短文本单元是向量化、检索的最小粒度每一块承载一段独立完整语义。Embedding 嵌入模型文档侧文本向量化模型接收Text Chunks把人类自然语言转换成计算机可计算的高维数字向量让语义能用数值距离衡量。VectorStore 向量数据库专门存储向量对应原文块的数据库如FAISS、Chroma、Milvus、Pinecone。存储内容文本块对应的Embedding向量、原始文本Chunk、文档元数据支持高速相似度检索。二、在线问答检索链路用户提问流程Query 用户查询/用户问题用户输入的自然语言提问例如“RAG架构分几步”。Embedding 嵌入模型查询侧和文档侧共用同一个Embedding模型将用户问题转换成Query Vector查询向量保证文档向量与问题向量处于同一向量空间。Query Vector 查询向量用户问题转换后的高维数字向量用于和向量库中所有文档向量做相似度计算。Vector Similarity 向量相似度计算向量数据库核心逻辑通过余弦距离、欧氏距离等算法计算Query Vector和库内全部文档向量的相似度筛选出语义最匹配的Top-N文本块。Related Text Chunks 关联文本块相似度匹配得分最高的若干原文片段就是和用户问题相关的参考资料用来补充LLM的外部知识。三、Prompt组装 LLM生成链路Prompt Template 提示词模板预设固定格式模板规范输入大模型的内容结构一般包含三部分角色设定、参考资料占位符、用户问题占位符。示例模板基于下面参考资料回答用户问题不准编造内容。参考资料{上下文}用户问题{query}Prompt 完整提示词将「Related Text Chunks关联片段」「用户原始Query」填充进Prompt Template后拼接得到发给大模型的完整输入文本。LLM 大语言模型生成核心接收拼接好的Prompt结合自身底座知识检索到的外部文档推理生成贴合资料、无幻觉的回答。Answer 最终回答LLM输出的、给用户展示的自然语言答案。补充标注名词LangChain本架构使用的开源大模型应用开发框架图中虚线框内所有组件均为LangChain提供的标准模块用于快速搭建RAG流程。整体流程极简梳理离线本地文档→加载→拆分成小块→向量化→存入向量库在线用户提问→问题向量化→向量库检索相似文本→把参考文本问题塞进提示模板→传给LLM→输出答案解析RAG不仅可以解析结构化文档如数据库表格、CSV还能通过Unstructured Loader等工具处理大量非结构化文档比如PDF、Word、TXT、网页内容、图片里提取的文本等非结构化文档反而是RAG最常用的处理对象