[{"data":1,"prerenderedAt":404},["ShallowReactive",2],{"project-rag-intelligent-customer-service":3},{"id":4,"title":5,"body":6,"date":393,"description":394,"extension":395,"meta":396,"navigation":397,"path":398,"seo":399,"stem":400,"summary":401,"tech_stack":402,"__hash__":403},"projects\u002Fprojects\u002Frag-intelligent-customer-service.md","RAG 智能客服系统",{"type":7,"value":8,"toc":370},"minimark",[9,14,19,33,55,58,62,66,77,80,102,104,108,111,166,170,190,193,225,227,231,235,259,263,282,286,301,305,313,315,319,330,332,336,368],[10,11,13],"h1",{"id":12},"产品手册-pdf-智能客服系统fastapi-langchain-chroma-前端聊天-ui","产品手册 PDF 智能客服系统（FastAPI + LangChain + Chroma + 前端聊天 UI）",[15,16,18],"h2",{"id":17},"一项目概述","一、项目概述",[20,21,22,23,27,28,32],"p",{},"本项目围绕“产品手册内容难检索、客服答复不一致、人工成本高”的痛点，构建了一套",[24,25,26],"strong",{},"基于产品手册 PDF 的智能客服系统","。系统采用",[29,30,31],"code",{},"RAG（检索增强生成）","方案：用户在前端聊天界面提问后，后端先从向量知识库中检索出与问题最相关的手册片段，再将片段作为参考资料交给大模型生成回答，从而在保证体验的同时显著降低“幻觉回答”。",[34,35,36,43,49],"ul",{},[37,38,39,42],"li",{},[24,40,41],{},"项目形态","：Web 端聊天 UI + FastAPI 后端接口",[37,44,45,48],{},[24,46,47],{},"核心能力","：PDF 知识库导入、语义检索、受控生成、流式回复、答案可追溯（来源页码）",[37,50,51,54],{},[24,52,53],{},"适用场景","：产品使用说明咨询、功能指引、参数\u002F报错解释、安装部署流程问答等",[56,57],"hr",{},[15,59,61],{"id":60},"二业务痛点与目标","二、业务痛点与目标",[63,64,65],"h3",{"id":65},"痛点",[34,67,68,71,74],{},[37,69,70],{},"客服\u002F用户需要在 PDF 手册里手动搜索，效率低、容易漏查",[37,72,73],{},"不同客服口径不一致，质量难以稳定",[37,75,76],{},"直接使用 LLM 回答会编造信息，可信度不足",[63,78,79],{"id":79},"目标",[34,81,82,89,92,99],{},[37,83,84,85,88],{},"将产品手册 PDF 快速构建为",[24,86,87],{},"可语义检索","的知识库",[37,90,91],{},"回答必须“有依据”：以检索片段为主，资料不足时明确说明",[37,93,94,95,98],{},"支持",[24,96,97],{},"流式输出","提升对话体验",[37,100,101],{},"架构可扩展：后续支持多份手册、多版本、增量更新、权限过滤",[56,103],{},[15,105,107],{"id":106},"三技术方案与架构","三、技术方案与架构",[63,109,110],{"id":110},"技术栈",[34,112,113,119,129,139,145,151,160],{},[37,114,115,118],{},[24,116,117],{},"后端","：FastAPI",[37,120,121,124,125,128],{},[24,122,123],{},"RAG 框架","：LangChain 1.x（LCEL + Runnable，统一 ",[29,126,127],{},"invoke\u002Fstream"," 调用范式）",[37,130,131,134,135,138],{},[24,132,133],{},"文档加载","：",[29,136,137],{},"PyPDFLoader","（PDF → Document）",[37,140,141,144],{},[24,142,143],{},"向量数据库","：Chroma（支持持久化存储与复用）",[37,146,147,150],{},[24,148,149],{},"Embedding","：文本嵌入模型（将 chunk 向量化）",[37,152,153,134,156,159],{},[24,154,155],{},"输出解析",[29,157,158],{},"StrOutputParser","（将模型输出统一为可直接返回的字符串）",[37,161,162,165],{},[24,163,164],{},"前端","：聊天 UI（支持增量渲染流式内容）",[63,167,169],{"id":168},"rag-标准流程","RAG 标准流程",[34,171,172,178,184],{},[37,173,174,177],{},[24,175,176],{},"索引 Indexing","：PDF 加载 → 文本切分 → Embedding → 写入 Chroma",[37,179,180,183],{},[24,181,182],{},"检索 Retrieval","：问题向量化 → top_k 相似检索 → 得到参考片段",[37,185,186,189],{},[24,187,188],{},"生成 Generation","：将参考片段 + 用户问题组成 Prompt → LLM 生成 → 流式返回",[63,191,192],{"id":192},"项目组织",[34,194,195,198,201,204,207,210,213,216,219,222],{},[37,196,197],{},"【agent】            Agent实现和工具",[37,199,200],{},"【model】            模型工厂",[37,202,203],{},"【rag】              RAG服务和向量存储",[37,205,206],{},"【utils】            配置、日志、工具函数",[37,208,209],{},"【prompts】          提示词模板",[37,211,212],{},"【config】           YAML配置文件",[37,214,215],{},"【data】             知识库文件(PDF\u002FTXT)",[37,217,218],{},"【tests】            单元测试",[37,220,221],{},"【chroma_db】        向量数据库",[37,223,224],{},"【logs】             日志文件",[56,226],{},[15,228,230],{"id":229},"四核心功能实现项目亮点","四、核心功能实现（项目亮点）",[63,232,234],{"id":233},"_1产品手册-pdf-知识库构建","1）产品手册 PDF 知识库构建",[34,236,237,246,249,252],{},[37,238,239,240,242,243],{},"使用 ",[29,241,137],{}," 将 PDF 抽取为 LangChain ",[29,244,245],{},"Document",[37,247,248],{},"为每段文本保留 metadata（如：文件名、页码、章节信息），方便溯源与展示引用",[37,250,251],{},"对手册内容进行 chunk 切分（控制 chunk_size 与 overlap），兼顾召回率与上下文完整性",[37,253,254,255,258],{},"将 chunk 向量化后写入 ",[24,256,257],{},"Chroma","，支持持久化目录，避免每次启动重新建库",[63,260,262],{"id":261},"_2语义检索-受控生成降低幻觉","2）语义检索 + 受控生成（降低幻觉）",[34,264,265,268,279],{},[37,266,267],{},"用户问题进入后端后先做 embedding，在 Chroma 中召回 top_k 相关片段",[37,269,270,271],{},"Prompt 约束回答策略：\n",[34,272,273,276],{},[37,274,275],{},"必须基于参考资料回答",[37,277,278],{},"若资料不足\u002F未覆盖，直接说明“手册未提及”并建议用户提供更多信息",[37,280,281],{},"通过“检索片段驱动回答”显著降低编造内容的风险，提升可信度与一致性",[63,283,285],{"id":284},"_3前端聊天-ui-流式输出","3）前端聊天 UI 流式输出",[34,287,288,295,298],{},[37,289,290,291,294],{},"后端基于 LangChain 的 ",[29,292,293],{},"stream()"," 将模型输出按 token\u002F片段逐步返回",[37,296,297],{},"前端聊天 UI 增量渲染内容，实现“打字机效果”，改善等待体验",[37,299,300],{},"支持多轮对话的基础交互（提问、回答、加载状态、错误提示等）",[63,302,304],{"id":303},"_4答案可追溯工程化可落地","4）答案可追溯（工程化可落地）",[34,306,307,310],{},[37,308,309],{},"在回答中可选择性输出“引用来源”（如：手册第 X 页 \u002F 某章节），便于客服复核",[37,311,312],{},"为后续升级“点击引用跳转到 PDF 对应页”预留接口与数据结构",[56,314],{},[15,316,318],{"id":317},"五项目效果","五、项目效果",[34,320,321,324,327],{},[37,322,323],{},"将“人工翻 PDF 查答案”的流程改为“秒级语义检索 + 自动生成”，显著提升响应效率",[37,325,326],{},"统一客服答复口径，减少培训成本与重复劳动",[37,328,329],{},"基于检索证据生成回答，降低幻觉，提升用户信任度",[56,331],{},[15,333,335],{"id":334},"六可扩展与复盘","六、可扩展与复盘",[34,337,338,344,350,356,362],{},[37,339,340,343],{},[24,341,342],{},"Rerank","：在向量召回后增加重排序，提高相关性",[37,345,346,349],{},[24,347,348],{},"多手册\u002F多版本","：基于 metadata 做过滤检索（产品型号、版本号）",[37,351,352,355],{},[24,353,354],{},"增量更新","：手册更新后仅重建变化部分向量",[37,357,358,361],{},[24,359,360],{},"评测体系","：构建问题集，对召回质量与最终答案准确率做自动评估",[37,363,364,367],{},[24,365,366],{},"对话记忆","：引入 RunnableWithMessageHistory 支持连续追问与上下文承接",[56,369],{},{"title":371,"searchDepth":372,"depth":372,"links":373},"",3,[374,376,380,385,391,392],{"id":17,"depth":375,"text":18},2,{"id":60,"depth":375,"text":61,"children":377},[378,379],{"id":65,"depth":372,"text":65},{"id":79,"depth":372,"text":79},{"id":106,"depth":375,"text":107,"children":381},[382,383,384],{"id":110,"depth":372,"text":110},{"id":168,"depth":372,"text":169},{"id":192,"depth":372,"text":192},{"id":229,"depth":375,"text":230,"children":386},[387,388,389,390],{"id":233,"depth":372,"text":234},{"id":261,"depth":372,"text":262},{"id":284,"depth":372,"text":285},{"id":303,"depth":372,"text":304},{"id":317,"depth":375,"text":318},{"id":334,"depth":375,"text":335},"2024-01","基于 RAG 的智能客服系统，通过向量检索实现知识库问答","md",{},true,"\u002Fprojects\u002Frag-intelligent-customer-service",{"title":5,"description":394},"projects\u002Frag-intelligent-customer-service","围绕\"产品手册内容难检索、客服答复不一致、人工成本高\"痛点，构建基于产品手册 PDF 的智能客服系统。采用 RAG 方案实现语义检索与受控生成，支持流式回复与答案可追溯。","FastAPI, LangChain, Chroma, 前端聊天 UI","5KBjIgMSqI3R-HM8nPy3RXEhXECJ3CviZOxshsCJirA",1780651452146]