最近做了一个实战项目,准备写下一系列文章,用来给自己复盘使用,如有大佬提出建议也感激不敬!

背景:按甲方需求,他们希望他们的客服机器人能够更加智能,甲方单日咨询量大约在五千到一万条,此前他们的客服机器人主要依赖FAQ,命中率比较低,需要大量的人工介入,后来接入产品说明书、产品数据库、售后政策等来作为RAG的知识库,但是问题很多,比如幻觉严重、多跳问题处理的效果不好、结构化数据和非结构化数据割裂等等。

提供的解决方案是:

用LangGraph构建Multi-Agent体系,让大模型自动识别用户意图,调用多种工具、返回正确答案,把幻觉率控制到甲方业务可接受范围里。

意图识别用Prompt-template+Deepseek V3。硬编码五类标签:general、additional、graghrag、image、file,分别对应一般性问题、要用户提供更多信息的问题、要查询知识库的问题、需要解析用户上传图片的问题以及需要解析用户上传文件的问题。同时使用结构化输出声明,让模型只返回JSON格式。

上线后,用上线日志做难负样本挖掘,把误分样本反补进few-shot列表,迭代三轮后,internet F1从0.82提升到0.93。

当问题落到gragh-query的时候,先用Planner把复合询问拆成子任务,借助LangGragh的Map-Reduce模式并行跑工具:结构化数据走Neo4j Text2Cypher,非结构化数据走Microsoft GraghRAG,并且预定义一些Cypher查询语句,用于处理高频率图数据库查询需求。这样单条复杂询问的平均延迟从4.8s降低到2.1s。

Text2Cypher部分做了三层防护:

  1. 人工梳理80条高频查询+20多条LLM自动补充、覆盖库存、价格、规格等核心场景
  2. 调用前实时抓取Neo4j元数据,自动填充占位符并规避字段/类型冲突
  3. 自动校验-纠错:先用EXPLAIN语法预检,若报错则由deepseek结合最新schema生成修正版并自动重试。正式环境里Cypher生成成功率94%,逻辑正确率88%

在additional-query和graphrag-query开头都放了安全护栏节点。先判断提问是否落在经营范围,再决定继续还是礼貌拒答;通过把业务品类写进prompt并动态拼Neo4j Schema,把误放比例压倒4%以内,最后输出前走一个Hallucination Dector,平均每1000句可拦截7-8条潜在幻觉回复。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐