客服Agent实战系列 -知识库增强

📅 发布时间:2026/7/17 9:52:28
客服Agent实战系列 -知识库增强 前面我们做了基础的知识库关键词匹配FAQ。但用户问我的快递到哪了即使FAQ里有物流查询的条目关键词匹配也可能找不到。**因为关键词匹配不理解快递就是物流。**本篇用Embedding 向量检索让知识库理解语义。关键词检索 vs 向量检索的核心区别对比维度关键词检索向量检索匹配方式字面匹配语义匹配同义词不支持支持理解深度浅深计算开销低高适用场景精确查找模糊语义查询图关键词检索 vs 向量检索1Embedding是什么Embedding是将文本词、句子、段落转化为高维向量的过程。转化后的向量具有语义相似则距离近的特性。Embedding的工作流程文本 → Tokenizer 切分为TokenToken → Embedding模型 → 向量向量间可用余弦相似度衡量语义距离示例“我的快递到了吗” 与 “物流状态查询” 的Embedding向量会非常接近即使字面完全不同。2向量检索RAG的整体流程RAGRetrieval-Augmented Generation是检索增强生成的缩写是当前大模型应用的核心架构。图RAG检索增强生成流程RAG的四个步骤索引阶段将所有文档Embedding后存入向量数据库检索阶段用户问题Embedding后查询向量数据库生成阶段将检索到的相关文档与问题一起喂给大模型回答阶段大模型基于提供的上下文生成答案3向量数据库选型常用的向量数据库对比数据库特点适用场景Chroma轻量级、Python原生原型开发、小中型项目Milvus高性能、分布式大规模生产环境FAISSFacebook开源、高效研究、单机场景Pinecone全托管云服务不想运维、快速上线pgvectorPostgreSQL扩展已有PG的项目入门推荐ChromaPython原生、接口简单几行代码就能跑通。生产环境推荐Milvus或Pinecone。4实现增强知识库插件先安装依赖pipinstallchromadbsentence-transformers实现 plugins/knowledge_base/vector_plugin.pyimport chromadbfrom sentence_transformers importSentenceTransformerclassVectorKnowledgeBasePlugin:def__init__(self,persist_dirdata/vector_db):self.modelSentenceTransformer(shibing624/text2vec)self.clientchromadb.PersistentClient(pathpersist_dir)self.collectionself.client.get_or_create_collection(namefaq,metadata{hnsw:space:cosine})defadd_documents(self,documents):ids[fdoc_{i}foriinrange(len(documents))]embeddings[self.model.encode(d[content]).tolist()fordindocuments]self.collection.add(idsids,embeddingsembeddings,documents[d[content]fordindocuments],metadatas[d.get(meta,{})fordindocuments])defsearch(self,query,top_k3):query_embeddingself.model.encode(query).tolist()resultsself.collection.query(query_embeddings[query_embedding],n_resultstop_k)returnresults[documents][0]ifresults[documents]else[]5构建索引入库FAQ数据import jsonfrom plugins.knowledge_base.vector_plugin importVectorKnowledgeBasePlugin# 加载FAQ数据withopen(data/faq.json,r,encodingutf-8)asf:faqsjson.load(f)# 初始化插件并入库kbVectorKnowledgeBasePlugin()documents[{content:faq[question] faq[answer],meta:{category:faq.get(category,)}}forfaqinfaqs]kb.add_documents(documents)# 测试检索resultskb.search(我的快递到了吗)forrinresults:print(r)# 输出最相关的FAQ物流查询、快递状态等6混合方案关键词 向量检索关键词检索和向量检索各有所长实际项目中通常用混合方案关键词精确匹配优先如订单号、产品型号关键词未命中时降级到向量检索向量检索后用关键词做精确过滤defsearch(self,query,top_k3):# 第一步关键词精确匹配kw_resultself.kb_plugin.search_by_keyword(query)ifkw_result:returnkw_result# 第二步向量语义检索vec_resultsself.vector_kb.search(query,top_k)# 第三步关键词过滤filtered[rforrinvec_resultsifself._keyword_filter(query,r)]returnfilteredorvec_results7总结与下一篇本篇要点Embedding将文本转为向量RAG检索增强生成是核心架构向量数据库选型Chroma/Milvus/FAISS混合方案兼顾精确与语义学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】