客服Agent实战系列 -知识库增强
2026/7/17 9:52:25 网站建设 项目流程

前面我们做了基础的知识库(关键词匹配FAQ)。但用户问"我的快递到哪了",即使FAQ里有"物流查询"的条目,关键词匹配也可能找不到。**因为关键词匹配不理解"快递"就是"物流"。**本篇用Embedding + 向量检索让知识库"理解"语义。

关键词检索 vs 向量检索的核心区别:

对比维度关键词检索向量检索
匹配方式字面匹配语义匹配
同义词不支持支持
理解深度
计算开销
适用场景精确查找模糊语义查询

图:关键词检索 vs 向量检索

1Embedding是什么?

Embedding是将文本(词、句子、段落)转化为高维向量的过程。转化后的向量具有"语义相似则距离近"的特性。

Embedding的工作流程:

  1. 文本 → Tokenizer 切分为Token
  2. Token → Embedding模型 → 向量
  3. 向量间可用余弦相似度衡量语义距离

示例:“我的快递到了吗” 与 “物流状态查询” 的Embedding向量会非常接近,即使字面完全不同。

2向量检索RAG的整体流程

RAG(Retrieval-Augmented Generation)是检索增强生成的缩写,是当前大模型应用的核心架构。

图:RAG检索增强生成流程

RAG的四个步骤:

  1. 索引阶段:将所有文档Embedding后存入向量数据库
  2. 检索阶段:用户问题Embedding后查询向量数据库
  3. 生成阶段:将检索到的相关文档与问题一起喂给大模型
  4. 回答阶段:大模型基于提供的上下文生成答案

3向量数据库选型

常用的向量数据库对比:

数据库特点适用场景
Chroma轻量级、Python原生原型开发、小中型项目
Milvus高性能、分布式大规模生产环境
FAISSFacebook开源、高效研究、单机场景
Pinecone全托管云服务不想运维、快速上线
pgvectorPostgreSQL扩展已有PG的项目

入门推荐:Chroma,Python原生、接口简单,几行代码就能跑通。生产环境推荐Milvus或Pinecone。

4实现:增强知识库插件

先安装依赖:

pipinstallchromadbsentence-transformers

实现 plugins/knowledge_base/vector_plugin.py:

import chromadbfrom sentence_transformers importSentenceTransformerclassVectorKnowledgeBasePlugin:def__init__(self,persist_dir="data/vector_db"):self.model=SentenceTransformer("shibing624/text2vec")self.client=chromadb.PersistentClient(path=persist_dir)self.collection=self.client.get_or_create_collection(name="faq",metadata={"hnsw:space":"cosine"})defadd_documents(self,documents):ids=[f"doc_{i}"foriinrange(len(documents))]embeddings=[self.model.encode(d["content"]).tolist()fordindocuments]self.collection.add(ids=ids,embeddings=embeddings,documents=[d["content"]fordindocuments],metadatas=[d.get("meta",{})fordindocuments])defsearch(self,query,top_k=3):query_embedding=self.model.encode(query).tolist()results=self.collection.query(query_embeddings=[query_embedding],n_results=top_k)returnresults["documents"][0]ifresults["documents"]else[]

5构建索引:入库FAQ数据

import jsonfrom plugins.knowledge_base.vector_plugin importVectorKnowledgeBasePlugin# 加载FAQ数据withopen("data/faq.json","r",encoding="utf-8")asf:faqs=json.load(f)# 初始化插件并入库kb=VectorKnowledgeBasePlugin()documents=[{"content":faq["question"]+" "+faq["answer"],"meta":{"category":faq.get("category","")}}forfaqinfaqs]kb.add_documents(documents)# 测试检索results=kb.search("我的快递到了吗")forrinresults:print(r)# 输出最相关的FAQ:物流查询、快递状态等

6混合方案:关键词 + 向量检索

关键词检索和向量检索各有所长,实际项目中通常用混合方案

  1. 关键词精确匹配优先(如订单号、产品型号)
  2. 关键词未命中时,降级到向量检索
  3. 向量检索后,用关键词做精确过滤
defsearch(self,query,top_k=3):# 第一步:关键词精确匹配kw_result=self.kb_plugin.search_by_keyword(query)ifkw_result:returnkw_result# 第二步:向量语义检索vec_results=self.vector_kb.search(query,top_k)# 第三步:关键词过滤filtered=[rforrinvec_resultsifself._keyword_filter(query,r)]returnfilteredorvec_results

7总结与下一篇

本篇要点:

  • 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%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询