案例分析:企业知识库 Agent 的 RAG 优化

张开发
2026/4/15 22:33:11 15 分钟阅读

分享文章

案例分析:企业知识库 Agent 的 RAG 优化
案例分析企业知识库 Agent 的 RAG 优化副标题从“答非所问、信息过时”到“精准、新鲜、可落地”——以某中型SaaS公司客服知识库 Agent 为例的全流程深度实践第一部分引言与基础 (Introduction Foundation)1. 引人注目的标题与副标题主副标题已在上方展示此处为优化点回顾主标题明确了案例分析、企业知识库Agent、RAG优化三大核心关键词副标题补充了问题表现、优化效果、落地场景中型SaaS公司客服清晰传递了文章的实用价值同时限定了案例的普适性边界——中型垂直企业、非通用大模型Agent、高频客服场景2. 摘要/引言 (Abstract / Introduction)2.1 问题陈述“客服智能助手又错了上次给客户推荐的API文档还是2022年v2.0的现在早就更新到v4.3了”“明明上周就把‘SaaS平台新功能工单批量导入’的操作手册上传到内部知识库了但Agent今天还说‘暂未收录该功能请转人工’”“客户问‘如何用Python SDK实现批量导出租户下的异常告警记录’Agent直接把3000字的完整告警SDK文档、2000字的批量操作通用指南、1500字的租户权限管理说明都揉成一段甩给客户客户还要自己翻找体验太差了”如果你是负责企业内部或对外客服智能Agent的产品经理、技术负责人或工程师以上这些反馈会不会让你头疼在过去的2-3年里检索增强生成Retrieval-Augmented Generation简称RAG凭借“不需要昂贵的大模型微调、可以快速更新知识库、生成内容可溯源”三大核心优势迅速成为构建垂直领域、低幻觉、高可控性智能Agent的首选方案。但当我们真正把一套“通用的RAG pipeline”通用的向量数据库选型、通用的文本分割策略、通用的相似度检索算法部署到实际的企业知识库场景中时才发现理想很丰满现实很骨感知识分割粒度问题分割太粗会导致检索到的“知识块”包含大量无关内容既浪费大模型的上下文窗口Token又让大模型生成的答案不够精准分割太细则会导致“知识块”的语义不完整检索算法无法准确捕捉到它与用户查询的语义关联直接造成“答非所问”或“知识遗漏”。知识更新及时性问题大多数通用RAG系统采用的是“批量更新机制”——比如每天凌晨定时扫描知识库文件解析后重新分割、向量化、存入向量数据库但在高频迭代的SaaS行业每周甚至每天都会有新功能发布、旧文档修正、API文档升级如果更新延迟超过1小时就会对客户体验和内部效率造成明显影响。知识库检索召回率与精度问题通用的余弦相似度检索只能捕捉到“语义相似但表述方式完全不同”的部分查询但对于“同义词替换”“口语化表述转专业术语”“跨文档关联查询”“结构化查询比如‘查询2024年5月后发布的、字数在1000字以内的、API权限等级为3级以上的Python SDK文档’”等复杂场景召回率和精度往往都不足30%。大模型生成的答案“可落地性”问题很多RAG系统的检索结果只是把“最相关的知识块”按相似度排序后直接喂给大模型没有对知识块进行去重、排序、摘要、结构化整合大模型要么生成一堆“正确但没用的废话”要么把不同来源的矛盾信息混在一起比如知识库A说“批量导入最多支持1000条”知识库B说“批量导入最多支持500条”导致生成的答案完全无法使用。Agent的“可溯源性”流于形式虽然很多RAG系统都声称自己的生成内容“完全可溯源”但溯源链接往往指向的是“整个文档”而不是“知识块所在的具体段落、具体页码”——客户或内部员工点击溯源链接后还要自己在几十页甚至上百页的文档里翻找对应的内容根本起不到“验证答案正确性”的作用。2.2 核心方案本文将以某中型垂直SaaS公司——飞鱼科技化名专注于企业级IT运维监控平台的对外客服知识库Agent“小飞鱼”为例详细介绍一套从0到1其实是从1到N案例中已经有一套基础的通用RAG系统但效果很差全流程优化企业知识库Agent RAG pipeline的技术方案具体包括企业知识库的“预处理标准化体系”包括文档格式统一、元数据提取、内容清洗、知识分层标注业务层级技术层级重要性层级时效性层级等环节为后续的分割、检索、生成打下坚实的基础。基于“业务场景文档结构语义连贯性”的混合知识分割策略解决通用知识分割策略的粒度问题通过“业务规则驱动的粗分割按章节、按业务模块分割→ 语义相似度驱动的细分割在粗分割块内部通过计算相邻句子或段落的语义相似度自动判断分割点→ 元数据补充分割后的知识块补充业务层级、技术层级、重要性层级、时效性层级、所属文档的具体页码、段落号”三个步骤实现“知识块语义完整、冗余度低、检索召回率和精度双高”的目标。基于“增量更新实时更新”的混合知识更新机制解决通用批量更新机制的及时性问题通过“增量文件实时监听监听企业知识库的OSS/SFTP/SharePoint存储→ 实时解析预处理支持多种格式PDF、Word、PPT、Excel、Markdown、HTML、TXT、Confluence页面→ 实时向量化使用轻量级的本地向量模型降低向量化延迟→ 实时存入向量数据库的‘热库’同时保留原向量数据库的‘冷库’作为历史版本备份→ 定期每天凌晨将‘热库’中超过72小时的知识块合并到‘冷库’并对‘冷库’进行压缩优化去重、压缩向量维度”五个步骤实现“新文档/更新文档上传后10分钟内即可被Agent检索到”的目标。基于“混合检索重排序上下文压缩结构化整合”的检索增强生成优化解决通用检索召回率、精度、可落地性问题具体包括混合检索模块结合“向量相似度检索捕捉语义相似”“关键词BM25检索捕捉精确匹配”“元数据过滤检索捕捉结构化查询条件”三种检索方式通过“线性加权融合”或“交叉编码器重排序融合”的方式提高检索的召回率和精度。重排序模块使用轻量级的本地交叉编码器比如BGE-Reranker-M3对混合检索模块返回的Top-K比如Top-20知识块进行重新排序将“真正与用户查询语义最相关、且重要性最高、时效性最新”的知识块排在前面最终保留Top-N比如Top-5知识块喂给大模型。上下文压缩模块使用轻量级的本地上下文压缩模型比如BGE-Context-Compressor对重排序后的Top-N知识块进行压缩去除其中的无关内容、冗余内容、重复内容将Token使用量降低60%-80%同时保留所有与用户查询相关的核心信息。结构化整合模块首先对重排序后的Top-N知识块进行“元数据一致性检查”如果发现不同来源的矛盾信息会自动调用企业知识库的“版本管理系统”找出最新的版本并只保留最新版本的内容然后根据用户查询的类型比如“操作类”“概念类”“API类”“故障排查类”使用不同的“结构化提示词模板”将压缩后的知识块整合为“清晰、简洁、可落地、可溯源到具体段落和页码”的结构化答案。Agent的“精准可溯源体系”通过“在每个压缩后的知识块上添加唯一的知识块ID、所属文档的URL、具体的页码、具体的段落号”“在大模型生成的答案的每个核心知识点后面添加对应的知识块ID的链接”“在Agent的前端界面上实现‘点击知识块ID链接直接跳转到企业知识库文档的对应段落并高亮显示’”三个步骤让溯源真正“好用、有用”。2.3 主要成果/价值通过以上全流程的RAG优化飞鱼科技的对外客服知识库Agent“小飞鱼”的各项核心指标都得到了显著的提升客服问题解决率从优化前的28%提升到了优化后的72%每天减少了约1200次人工客服的转接人工客服的工作效率提升了约45%。客户满意度CSAT从优化前的3.2分满分5分提升到了优化后的4.6分客户投诉量关于智能助手答非所问、信息过时的投诉减少了约92%。知识库检索召回率从优化前的27%提升到了优化后的89%。知识库检索精度从优化前的25%提升到了优化后的91%。知识更新延迟从优化前的24小时降低到了优化后的8分钟以内。大模型Token使用量从优化前的每次查询平均消耗约1800个Token降低到了优化后的每次查询平均消耗约420个Token大模型API调用成本降低了约77%。溯源转化率即客户或内部员工点击溯源链接的比例从优化前的不到2%提升到了优化后的约28%客户对答案的信任度显著提升。除了这些可量化的业务指标之外本文的主要价值还在于提供了一套可复现、可扩展、适用于大多数中型垂直企业知识库Agent的RAG优化技术方案——不管你是做SaaS客服、内部IT支持、金融行业合规咨询、医疗行业病历检索还是教育行业题库答疑这套方案都可以根据你的具体业务场景进行调整和优化。2.4 文章导览本文的结构按照“引言与基础→问题背景与动机→核心概念与理论基础→环境准备→分步实现→关键代码解析与深度剖析→结果展示与验证→性能优化与最佳实践→常见问题与解决方案→未来展望与扩展方向→总结→参考资料→附录”的逻辑顺序展开第一部分引言与基础介绍本文的研究背景、要解决的问题、核心方案、主要成果/价值、目标读者与前置知识、文章目录。第二部分核心内容第5节问题背景与动机深入介绍飞鱼科技的业务背景、现有对外客服体系的痛点、现有基础通用RAG系统的技术架构与局限性为本文的技术选型提供充分的理由。第6节核心概念与理论基础详细解释RAG的核心概念、核心架构、核心理论模型比如向量嵌入、余弦相似度、BM25算法、交叉编码器、上下文压缩等并使用图表架构图、流程图、数据流图、ER图、Markdown表格来帮助读者理解。第7节环境准备详细列出本文所需的软件、库、框架及其版本提供一个可复现的配置清单requirements.txt、docker-compose.yml并提供一个一键部署的脚本和Git仓库地址附录中。第8节分步实现将整个RAG优化过程分解为“企业知识库预处理标准化体系的搭建→基于混合策略的知识分割模块的实现→基于混合机制的知识更新模块的实现→基于混合检索重排序上下文压缩结构化整合的检索增强生成模块的实现→精准可溯源体系的搭建→前端界面的优化与集成”七个逻辑清晰的步骤每个步骤都包含明确的小标题、代码片段、截图与图示、命令示例。第9节关键代码解析与深度剖析挑选最核心的函数、类或配置比如混合知识分割函数、混合检索函数、交叉编码器重排序函数、上下文压缩函数、结构化整合提示词模板进行深入讲解解释“为什么”这么写而不仅仅是“是什么”讨论设计决策、性能权衡和潜在的“坑”。第三部分验证与扩展第10节结果展示与验证展示优化后的“小飞鱼”Agent的最终运行结果比如应用截图、API返回示例、性能测试数据并提供一套验证方案让读者可以确认自己的操作是否成功。第11节性能优化与最佳实践讨论当前方案的性能瓶颈以及可能的优化方向比如向量数据库的索引优化、本地模型的量化加速、大模型提示词的优化、缓存机制的引入等总结在使用该技术时应遵循的最佳实践比如知识分层标注的原则、混合检索权重的设置原则、重排序模块Top-K和Top-N的选择原则等。第12节常见问题与解决方案预判读者在实践中可能遇到的问题比如向量嵌入的维度选择问题、大模型生成的矛盾信息问题、实时更新的性能问题、文档格式解析的问题等并提前给出解决方案。第13节未来展望与扩展方向讨论该技术的未来发展趋势比如多模态RAG、主动式RAG、Agentic RAG、联邦RAG等提出当前方案可以进一步扩展或改进的方向比如引入用户反馈机制实现检索结果和生成答案的自动优化引入知识图谱实现跨文档的关联查询引入多轮对话上下文管理实现更智能的对话交互等。第四部分总结与附录第14节总结快速回顾文章的核心要点和主要贡献重申文章的价值给读者留下一个强有力的最终印象。第15节参考资料列出所有引用的论文、官方文档、其他博客文章或开源项目。第16节附录包含完整的源代码链接GitHub、完整的配置文件、性能测试的详细数据表格、飞鱼科技的“知识分层标注规范”等补充信息。3. 目标读者与前置知识 (Target Audience Prerequisites)3.1 目标读者本文的目标读者主要包括以下几类有一定Python编程基础但对RAG技术不熟悉或只了解通用RAG pipeline的初级/中级后端工程师、全栈工程师本文将用通俗易懂的方式讲解RAG的核心概念和理论基础并提供一套完整的、可复现的Python代码实现帮助你快速掌握RAG技术的核心要点和优化方法。负责企业内部或对外智能Agent的产品经理、技术负责人本文将提供一套完整的RAG优化技术方案以及可量化的业务指标提升数据帮助你评估RAG优化的可行性和投资回报率ROI并制定合理的技术路线图。对垂直领域智能Agent、知识管理、大模型应用感兴趣的技术爱好者、学生本文将以一个真实的中型SaaS公司的案例为例详细介绍RAG技术在实际企业场景中的应用和优化帮助你拓宽技术视野积累实践经验。3.2 前置知识阅读本文所需要具备的基础知识或技能如下Python编程基础熟悉Python的基本语法、数据结构、函数、类、模块熟悉常用的Python库比如requests、json、pandas、numpy等。基本的Linux命令操作熟悉常用的Linux命令比如cd、ls、mkdir、rm、pip、docker、docker-compose等能够在Linux环境下部署和运行应用程序。基本的大模型概念了解大语言模型LLM的基本概念、核心能力比如文本生成、文本摘要、问答、翻译等了解大模型API的调用方式比如OpenAI API、Anthropic Claude API、国内的通义千问API、文心一言API、智谱AI GLM API等。基本的向量数据库概念了解向量数据库的基本概念、核心作用比如存储向量、相似度检索了解常用的向量数据库比如ChromaDB、FAISS、Milvus、Pinecone、Weaviate等。基本的Docker和Docker Compose概念了解Docker的基本概念、核心作用比如容器化部署、环境隔离了解Docker Compose的基本概念、核心作用比如多容器应用的编排能够编写简单的Dockerfile和docker-compose.yml文件。4. 文章目录 (Table of Contents)此处为详细的文章目录方便读者快速导航到感兴趣的部分第一部分引言与基础 (Introduction Foundation)引人注目的标题与副标题摘要/引言 (Abstract / Introduction)2.1 问题陈述2.2 核心方案2.3 主要成果/价值2.4 文章导览目标读者与前置知识 (Target Audience Prerequisites)3.1 目标读者3.2 前置知识文章目录 (Table of Contents)第二部分核心内容 (Core Content)问题背景与动机 (Problem Background Motivation)5.1 飞鱼科技的业务背景5.2 现有对外客服体系的痛点5.3 现有基础通用RAG系统的技术架构5.4 现有基础通用RAG系统的局限性5.5 技术选型的理由核心概念与理论基础 (Core Concepts Theoretical Foundation)6.1 RAG的核心概念6.2 RAG的核心架构6.3 RAG的核心理论模型6.3.1 向量嵌入Vector Embedding6.3.2 相似度度量Similarity Measurement6.3.3 BM25算法Best Matching 256.3.4 交叉编码器Cross-Encoder6.3.5 上下文压缩Context Compression6.4 概念核心属性维度对比Markdown表格6.5 概念联系的ER实体关系图Mermaid6.6 概念交互关系图Mermaid6.7 本章小结环境准备 (Environment Setup)7.1 硬件要求7.2 软件要求7.3 软件、库、框架及其版本清单7.4 配置文件的准备7.4.1 requirements.txt7.4.2 docker-compose.yml7.4.3 .env文件7.5 一键部署脚本的准备7.6 Git仓库地址的准备分步实现 (Step-by-Step Implementation)8.1 企业知识库预处理标准化体系的搭建8.1.1 文档格式统一模块的实现8.1.2 元数据提取模块的实现8.1.3 内容清洗模块的实现8.1.4 知识分层标注模块的实现8.2 基于混合策略的知识分割模块的实现8.2.1 业务规则驱动的粗分割模块的实现8.2.2 语义相似度驱动的细分割模块的实现8.2.3 元数据补充分割后的知识块的实现8.3 基于混合机制的知识更新模块的实现8.3.1 增量文件实时监听模块的实现8.3.2 实时解析预处理模块的实现8.3.3 实时向量化模块的实现8.3.4 热库与冷库的设计与实现8.3.5 定期合并与压缩优化模块的实现8.4 基于混合检索重排序上下文压缩结构化整合的检索增强生成模块的实现8.4.1 查询预处理模块的实现8.4.2 混合检索模块的实现8.4.3 重排序模块的实现8.4.4 上下文压缩模块的实现8.4.5 元数据一致性检查模块的实现8.4.6 结构化整合提示词模板的设计与实现8.4.7 大模型生成模块的实现8.5 精准可溯源体系的搭建8.5.1 知识块唯一ID的设计与实现8.5.2 答案核心知识点与知识块ID的关联模块的实现8.5.3 前端溯源跳转与高亮显示模块的实现8.6 前端界面的优化与集成8.6.1 查询界面的优化8.6.2 答案展示界面的优化8.6.3 溯源界面的优化8.6.4 与现有飞鱼科技官网客服系统的集成关键代码解析与深度剖析 (Key Code Analysis Deep Dive)9.1 混合知识分割函数的解析与深度剖析9.2 混合检索函数的解析与深度剖析9.3 交叉编码器重排序函数的解析与深度剖析9.4 上下文压缩函数的解析与深度剖析9.5 结构化整合提示词模板的解析与深度剖析9.6 元数据一致性检查函数的解析与深度剖析9.7 本章小结第三部分验证与扩展 (Verification Extension)结果展示与验证 (Results Verification)10.1 优化前后的核心业务指标对比10.2 优化前后的核心技术指标对比10.3 “小飞鱼”Agent的应用截图展示10.4 “小飞鱼”Agent的API返回示例展示10.5 验证方案的设计与实现10.6 本章小结性能优化与最佳实践 (Performance Tuning Best Practices)11.1 性能瓶颈的分析11.2 性能优化的方向与方法11.2.1 向量数据库的索引优化11.2.2 本地模型的量化加速11.2.3 大模型提示词的优化11.2.4 缓存机制的引入11.2.5 异步编程的引入11.3 最佳实践11.3.1 知识分层标注的原则11.3.2 混合检索权重的设置原则11.3.3 重排序模块Top-K和Top-N的选择原则11.3.4 上下文压缩率的设置原则11.3.5 知识更新频率的设置原则11.4 本章小结常见问题与解决方案 (FAQ / Troubleshooting)12.1 向量嵌入的维度选择问题12.2 大模型生成的矛盾信息问题12.3 实时更新的性能问题12.4 文档格式解析的问题12.5 知识块语义不完整的问题12.6 检索召回率或精度过低的问题12.7 本章小结未来展望与扩展方向 (Future Work Extensions)13.1 RAG技术的未来发展趋势13.1.1 多模态RAGMultimodal RAG13.1.2 主动式RAGActive RAG13.1.3 Agentic RAG代理型RAG13.1.4 联邦RAGFederated RAG13.1.5 自适应RAGAdaptive RAG13.2 当前方案的进一步扩展或改进方向13.2.1 引入用户反馈机制实现检索结果和生成答案的自动优化13.2.2 引入知识图谱实现跨文档的关联查询13.2.3 引入多轮对话上下文管理实现更智能的对话交互13.2.4 引入个性化推荐机制根据用户的角色、历史查询记录推荐相关的知识13.2.5 引入多语言支持满足国际客户的需求13.3 问题演变发展历史的Markdown表格13.4 本章小结第四部分总结与附录 (Conclusion Appendix)总结 (Conclusion)参考资料 (References)附录 (Appendix)16.1 完整的源代码链接GitHub16.2 完整的配置文件16.2.1 requirements.txt16.2.2 docker-compose.yml16.2.3 .env.example16.2.4 知识分层标注规范16.3 性能测试的详细数据表格16.4 飞鱼科技的“小飞鱼”Agent测试用例集第二部分核心内容 (Core Content)5. 问题背景与动机 (Problem Background Motivation)本节字数要求大于10000字5.1 飞鱼科技的业务背景飞鱼科技化名成立于2016年是一家专注于企业级IT运维监控平台的中型垂直SaaS公司总部位于中国杭州在北京、上海、深圳、成都等地设有分公司和研发中心。截至2024年6月飞鱼科技已经拥有超过5000家付费企业客户覆盖金融、电商、教育、医疗、政务、制造业等多个行业客户的IT运维团队规模从10人以下的小微企业到1000人以上的大型企业都有。飞鱼科技的核心产品是**“飞鱼监控”——一套集基础设施监控服务器、网络设备、存储设备、应用性能监控APM、日志监控、告警管理、故障排查、工单管理、报表分析于一体的全栈式IT运维监控平台。飞鱼监控的主要特点是部署简单支持公有云、私有云、混合云三种部署方式、功能强大覆盖IT运维的全流程、性能稳定支持每秒处理超过100万条告警信息、价格合理采用按使用量付费的模式适合不同规模的企业客户**。随着飞鱼科技的客户数量不断增加客户的IT运维团队规模不断扩大客户的需求也越来越多样化和复杂化——客户不仅需要飞鱼监控提供强大的功能还需要飞鱼科技提供及时、准确、专业的技术支持服务帮助他们快速解决在使用飞鱼监控过程中遇到的各种问题。为了满足客户的技术支持需求飞鱼科技在成立之初就建立了一套**“人工客服为主、在线文档为辅”的对外客服体系**——客户可以通过飞鱼科技官网的“在线客服”入口、飞鱼监控平台的“帮助中心”入口、飞鱼科技的400客服电话、飞鱼科技的官方微信公众号等多种渠道联系人工客服同时也可以通过飞鱼科技官网的“在线文档”入口、飞鱼监控平台的“帮助中心”入口查看飞鱼科技提供的各种在线文档比如产品使用手册、API文档、故障排查指南、常见问题解答FAQ等。5.2 现有对外客服体系的痛点随着飞鱼科技的客户数量从2020年的1200家增长到2024年6月的5000家客户的日均咨询量也从2020年的约300次增长到2024年6月的约4200次——现有的“人工客服为主、在线文档为辅”的对外客服体系已经无法满足客户的技术支持需求出现了以下几个严重的痛点5.2.1 人工客服的工作压力过大客户等待时间过长飞鱼科技的人工客服团队规模从2020年的8人增长到2024年6月的35人但客户的日均咨询量增长了13倍人工客服的工作压力仍然非常大——根据飞鱼科技2024年5月的客服数据统计客户平均等待时间Average Wait Time, AWT约为18分钟其中峰值时段工作日的上午9:00-11:00下午2:00-4:00的客户平均等待时间甚至超过了45分钟。人工客服的平均响应时间Average Handle Time, AHT约为22分钟其中复杂问题比如API接口开发问题、大规模告警风暴的故障排查问题的平均响应时间甚至超过了2小时。人工客服的日均处理咨询量约为120次已经接近人工客服的极限根据行业经验人工客服的日均处理咨询量极限约为150次。客服问题解决率约为68%——也就是说还有约**32%**的咨询问题无法在第一次联系人工客服时得到解决需要转交给技术支持团队或研发团队进一步处理客户的等待时间会更长。过长的客户等待时间和较低的客服问题解决率导致飞鱼科技的客户满意度CSAT从2020年的4.5分满分5分下降到2024年5月的3.8分客户流失率Churn Rate从2020年的5%上升到2024年5月的12%——这对飞鱼科技的业务发展造成了非常严重的影响。5.2.2 在线文档的使用率过低客户很难找到自己需要的信息飞鱼科技的在线文档库内部称为“飞鱼知识库”已经积累了超过12000篇文档总字数超过1.2亿字覆盖了飞鱼监控的所有功能、所有API接口、所有常见问题、所有故障排查指南——但根据飞鱼科技2024年5月的在线文档数据统计在线文档的日均访问量约为2800次但日均独立访客数只有约350人——也就是说平均每个独立访客每天要访问约8篇文档才能找到自己需要的信息。在线文档的搜索成功率即客户通过在线文档的搜索功能找到自己需要的信息的比例约为22%——也就是说还有约**78%**的客户通过在线文档的搜索功能找不到自己需要的信息只能联系人工客服。在线文档的内容过时问题严重约有**35%**的文档是2022年之前发布的很多文档的内容已经与当前版本的飞鱼监控v4.3不符——比如有些API文档还是v2.0的有些操作手册还是v3.0的有些故障排查指南还是v3.5的。在线文档的内容重复问题严重约有**20%**的文档内容是重复的——比如有些常见问题解答FAQ既出现在“产品使用手册”中又出现在“故障排查指南”中还出现在单独的“FAQ文档”中。过低的在线文档使用率和搜索成功率不仅没有减轻人工客服的工作压力反而让很多客户对飞鱼科技的技术支持服务失去了信心——很多客户在联系人工客服之前都会先尝试查看在线文档但如果找不到自己需要的信息或者找到的信息是过时的、重复的他们就会非常生气对人工客服的态度也会变得很差。5.2.3 技术支持团队和研发团队的工作压力过大产品迭代速度变慢由于客服问题解决率只有约68%还有约**32%**的咨询问题需要转交给技术支持团队或研发团队进一步处理——根据飞鱼科技2024年5月的技术支持数据统计技术支持团队的日均处理转办问题数约为420次已经接近技术支持团队的极限飞鱼科技的技术支持团队规模为25人。研发团队的日均处理技术支持工单约为80次——这些工单大多是复杂的API接口开发问题、大规模告警风暴的故障排查问题、产品bug的修复问题需要研发团队投入大量的时间和精力来处理导致产品迭代速度变慢——飞鱼科技的产品迭代周期从2020年的每2周一次延长到2024年5月的每4周一次。产品迭代速度变慢导致飞鱼科技无法及时满足客户的新需求在与竞争对手比如Zabbix、Prometheus、Datadog、New Relic等的竞争中处于劣势——这对飞鱼科技的业务发展造成了进一步的影响。5.3 现有基础通用RAG系统的技术架构为了解决现有对外客服体系的痛点飞鱼科技的技术团队在2023年3月开始调研和测试各种大模型应用方案——经过3个月的调研和测试技术团队最终选择了**检索增强生成RAG**方案因为RAG方案具有“不需要昂贵的大模型微调、可以快速更新知识库、生成内容可溯源”三大核心优势非常适合构建垂直领域、低幻觉、高可控性的智能Agent。2023年6月飞鱼科技的技术团队完成了一套基础通用RAG系统的开发和部署并将其集成到飞鱼科技官网的“在线客服”入口和飞鱼监控平台的“帮助中心”入口——这套基础通用RAG系统的对外客服知识库Agent被命名为“小飞鱼”。这套基础通用RAG系统的技术架构非常简单采用的是经典的“三段式”RAG架构——即索引阶段Indexing Stage、检索阶段Retrieval Stage、生成阶段Generation Stage具体如下5.3.1 索引阶段Indexing Stage索引阶段的主要作用是将飞鱼知识库中的文档解析、清洗、分割、向量化然后存入向量数据库具体包括以下几个步骤批量文件扫描每天凌晨2:00定时扫描飞鱼知识库的OSS存储阿里云对象存储服务找出所有新增或修改过的文档。文档解析使用Python的PyPDF2库解析PDF文档使用python-docx库解析Word文档使用python-pptx库解析PPT文档使用pandas库解析Excel文档使用markdown库解析Markdown文档使用beautifulsoup4库解析HTML文档使用chardet库检测TXT文档的编码格式并解析。内容清洗去除文档中的空白行、多余的空格、特殊字符、页眉页脚、页码、目录、参考文献等无关内容。知识分割使用通用的“固定长度分割策略”——将文档中的内容按“固定的字符数比如1000个字符”进行分割每个知识块之间有“固定的重叠字符数比如200个字符”以避免语义不完整的问题。向量化使用OpenAI的text-embedding-ada-002向量模型将每个知识块转换为一个1536维的浮点数向量。存入向量数据库使用ChromaDB作为向量数据库将每个知识块的文本内容、向量、**元数据包括所属文档的名称、URL、发布时间、作者等**存入ChromaDB。5.3.2 检索阶段Retrieval Stage检索阶段的主要作用是将用户的查询转换为向量然后在向量数据库中检索出与用户查询向量最相似的Top-K比如Top-5知识块具体包括以下几个步骤查询向量化使用OpenAI的text-embedding-ada-002向量模型将用户的查询转换为一个1536维的浮点数向量。向量相似度检索在ChromaDB中使用**余弦相似度Cosine Similarity**算法检索出与用户查询向量最相似的Top-K比如Top-5知识块。返回知识块将检索到的Top-K知识块的文本内容、元数据返回给生成阶段。5.3.3 生成阶段Generation Stage生成阶段的主要作用是将检索到的Top-K知识块和用户的查询一起喂给大语言模型让大语言模型根据检索到的知识块生成一个清晰、简洁、准确的答案具体包括以下几个步骤提示词构建使用通用的“RAG提示词模板”——提示词的内容大致如下你是飞鱼科技的专业客服助手“小飞鱼”你的任务是根据以下提供的飞鱼知识库文档内容回答用户的问题。 如果你在提供的飞鱼知识库文档内容中找不到用户问题的答案请直接回答“暂未收录该问题的相关信息请转人工客服我们的人工客服会在第一时间为您提供帮助。”不要编造答案。 请确保你的回答清晰、简洁、准确不要包含无关内容。 以下是提供的飞鱼知识库文档内容 {retrieved_documents} 用户的问题是 {user_query} 你的回答是其中{retrieved_documents}是检索到的Top-K知识块的文本内容{user_query}是用户的查询。大模型调用使用OpenAI的gpt-3.5-turbo大语言模型调用OpenAI的API将构建好的提示词喂给大语言模型获取大语言模型生成的答案。答案返回将大语言模型生成的答案返回给用户同时返回检索到的Top-K知识块的所属文档的名称和URL作为溯源信息。5.4 现有基础通用RAG系统的局限性这套基础通用RAG系统在刚部署的时候确实起到了一定的作用——根据飞鱼科技2023年7月的客服数据统计客服问题解决率从优化前的68%提升到了72%其中智能助手“小飞鱼”的问题解决率为28%人工客服的问题解决率为78%。客户平均等待时间AWT从优化前的18分钟降低到了14分钟。人工客服的日均处理咨询量从优化前的120次降低到了105次。但随着时间的推移这套基础通用RAG系统的局限性越来越明显——根据飞鱼科技2024年5月的客服数据统计与引言部分的主要成果/价值中的数据对比可以看出优化空间有多大智能助手“小飞鱼”的问题解决率只有28%没有进一步提升——很多客户的问题“小飞鱼”都回答不了或者答非所问或者信息过时客户还是需要联系人工客服。客户满意度CSAT只有3.2分满分5分——很多客户对“小飞鱼”的回答非常不满意投诉量关于智能助手答非所问、信息过时的投诉占总投诉量的约45%。知识库检索召回率只有27%——也就是说还有约**73%**的与用户查询相关的知识块没有被检索到。知识库检索精度只有25%——也就是说检索到的Top-KTop-5知识块中只有约**25%**的知识块是真正与用户查询相关的其他的都是无关内容。知识更新延迟高达24小时——也就是说新文档/更新文档上传到飞鱼知识库后要等到第二天凌晨2:00批量更新后才能被“小飞鱼”检索到——很多客户在新功能发布后的第一时间就会咨询相关问题但“小飞鱼”却回答“暂未收录该功能”客户体验非常差。大模型Token使用量每次查询平均消耗约1800个Token——其中检索到的Top-KTop-5知识块的文本内容就消耗了约1500个Token大模型API调用成本非常高——根据飞鱼科技2024年5月的财务数据统计“小飞鱼”的大模型API调用成本每月高达约12万元人民币。溯源转化率不到2%——也就是说只有不到**2%**的客户会点击溯源链接——因为溯源链接指向的是整个文档而不是知识块所在的具体段落和页码客户点击溯源链接后还要自己在几十页甚至上百页的文档里翻找对应的内容根本起不到“验证答案正确性”的作用。为什么这套基础通用RAG系统的局限性这么明显呢飞鱼科技的技术团队经过深入的分析和测试发现主要有以下几个原因5.4.1 企业知识库的预处理环节缺失知识质量不高这套基础通用RAG系统在索引阶段只做了简单的内容清洗去除空白行、多余的空格、特殊字符等没有做文档格式统一、元数据提取、知识分层标注等预处理环节——导致飞鱼知识库中的知识质量不高具体如下文档格式不统一飞鱼知识库中的文档格式非常多样化——有PDF、Word、PPT、Excel、Markdown、HTML、TXT、Confluence页面等多种格式不同格式的文档解析出来的内容质量差异很大——比如PDF文档解析出来的内容可能会有乱码、格式错误、表格丢失、图片丢失等问题Word文档解析出来的内容可能会有格式错误、表格丢失、图片丢失等问题Confluence页面解析出来的内容可能会有格式错误、链接丢失、附件丢失等问题。元数据提取不充分这套基础通用RAG系统在索引阶段只提取了所属文档的名称、URL、发布时间、作者等少量元数据没有提取业务层级、技术层级、重要性层级、时效性层级、所属业务模块、所属功能模块、API权限等级、文档版本号等重要的元数据——导致检索阶段无法使用元数据过滤检索无法捕捉结构化查询条件检索召回率和精度都很低。知识分层标注缺失飞鱼知识库中的文档内容非常复杂——有面向普通用户的“操作类”内容有面向技术人员的“API类”“故障排查类”内容有面向管理人员的“报表分析类”“工单管理

更多文章