当前位置: 首页 > news >正文

【Agent智能体】42KnowledgeHandler设计实现

章节四十二:KnowledgeHandler设计与实现

一、KnowledgeHandler设计

1.1 概述

KnowledgeHandler:负责处理知识问答类请求。根据用户问题检索信息,将检索到的信息连同用户问题一起交给大模型生成回复。

ChitChatHandler:负责处理闲聊类请求。读取最近对话历史,将历史和用户最后一句话一起交给大模型,生成自然的闲聊回复。

1.2 知识意图定义

KnowledgeHandler中定义了如下知识意图,TurnPlanner会将用户问题归到某个知识意图:

知识意图说明
product_info商品信息咨询
order_info订单信息咨询
refund_policy退款政策咨询
return_policy退货政策咨询
shipping_policy配送政策咨询
platform_rule平台规则咨询
general_ecommerce_info电商通用信息咨询

1.3 信息源类型

不同意图对应不同的信息源,当前系统有三类信息源:

信息源说明
api查询实时业务数据,例如商品、订单
faq查询标准问答
rag查询文档知识库

意图与信息源的对应关系:

知识意图信息源列表
product_infoapi.product、faq.default、rag.default
order_infoapi.order、faq.default、rag.default
refund_policyfaq.default、rag.default
return_policyfaq.default、rag.default
shipping_policyfaq.default、rag.default
platform_rulerag.default
general_ecommerce_infofaq.default、rag.default

1.4 KnowledgeHandler处理流程

第一步:DialogueEngine根据用户消息预测知识意图。

第二步:进入KnowledgeHandler,编排知识问答流程。

第三步:KnowledgeContextBuilder构建上下文对象,包含用户消息、最近历史、聚焦对象和知识意图。

第四步:KnowledgePlanner根据知识意图和上下文选择本轮要查询的信息源。

第五步:KnowledgeProviderRegistry根据provider ID找到对应的KnowledgeProvider。

第六步:KnowledgeProvider从具体信息源中获取数据,返回KnowledgeChunk(知识片段)。

第七步:KnowledgeResponder将检索到的信息和用户问题组装成提示词,交给大模型生成回复。

第八步:返回BotMessage(最终客服消息)。

1.5 ChitChatHandler处理流程

第一步:ChitChatHandler接收闲聊消息。

第二步:提取最近对话历史(recent_turns)。

第三步:提取用户最后一句话(user_message)。

第四步:ChitChatResponder组装提示词并调用大模型。

第五步:返回BotMessage(闲聊回复)。

二、KnowledgeHandler实现

2.1 入口方法

KnowledgeHandler的handle()接收两个参数:

  • state:当前完整对话状态
  • intents:本轮命中的知识意图列表

处理流程:

第一步:读取pending_turn.input_message(当前用户问题)。

第二步:读取state.recent_turns(最近对话历史)。

第三步:根据intents合并provider_ids并去重。

第四步:通过KnowledgeProviderRegistry.get()查找对应的Provider。

第五步:调用Provider.retrieve()获取知识片段(KnowledgeChunk列表)。

第六步:调用KnowledgeResponder.respond(),将用户问题、对话历史和知识片段交给大模型生成回复。

第七步:返回BotMessage。

2.2 KnowledgeIntent

KnowledgeIntent描述一种知识问答意图及其需要的provider。字段包括:id(意图ID)、description(意图说明)、provider_ids(需要查询的provider列表)、requires_object(是否要求有聚焦对象)。

例如product_info意图需要api.product,且要求聚焦对象类型为product;order_info需要api.order,且要求聚焦对象类型为order。

2.3 KnowledgeProvider

KnowledgeProvider是知识来源的基类,每个provider负责根据当前DialogueState检索知识并返回KnowledgeChunk列表。

ProductApiProvider:查询商品实时信息。从focused_object获取商品ID,调用商品详情接口,将结果格式化后返回KnowledgeChunk。

OrderApiProvider:查询订单和物流实时信息。从focused_object获取订单号,使用asyncio.gather()并发查询订单API和物流API,合并结果后返回KnowledgeChunk。

FaqKnowledgeProvider和RagKnowledgeProvider:当前为占位实现,后续可接入具体的FAQ库和RAG知识库。

2.4 KnowledgeProviderRegistry

KnowledgeProviderRegistry根据provider id查找provider。初始化时把provider列表转换为字典(provider_id到provider实例),实现O(1)快速查找。

2.5 KnowledgeResponder

KnowledgeResponder负责把知识片段、对话历史和用户问题交给大模型,生成最终客服回复。

处理流程:

第一步:拼接knowledge_content(合并所有知识片段的内容)。

第二步:构建history(格式化最近对话历史)。

第三步:组装LangChain chain(调用大模型的执行链)。

第四步:调用LLM生成回复。

第五步:返回BotMessage。

提示词模板要点:角色设定为中文电商客服助手,语气自然友好简洁;优先基于知识片段作答,不编造不存在的内容;信息不足时坦诚告知;不机械复述资料原文。

2.6 KnowledgeHandler总入口

最终的总入口流程:

第一步:从state.pending_turn.input_message读取当前用户问题。

第二步:从state.recent_turns(10)读取最近10轮对话历史。

第三步:根据intents合并provider列表并去重。

第四步:遍历provider_ids,调用registry.get()获取Provider,再调用provider.retrieve(state)获取知识片段。

第五步:调用responder.respond(user_message, recent_turns, chunks)生成回复。

http://www.jsqmd.com/news/1163219/

相关文章:

  • 让模糊视频瞬间清晰:SeedVR2单步AI视频修复工具完全指南
  • GPT-5.6 来了,但这次不是“模型更强“,是“AI 会组团干活了“
  • Mermaid Live Editor:企业级实时图表编辑的完整技术方案
  • 【Agent智能体】41TaskHandler设计实现
  • 30天掌握PDF批量处理:如何用PDF补丁丁重塑文档工作流
  • TS2007FC与PIC18F45K42在音频处理中的高效组合
  • 2026年7月最新南昌美度官方售后热线及客户服务网点地址 - 亨得利钟表维修中心
  • 值得推荐的一体化污水处理设备 8项必查指标汇总 - 信息热点
  • 如何在 YOLO11 目标检测项目中,利用 DVC (Data Version Control) 实现数据集、模型及机器学习流水线 (Pipelines) 的版本控制与高效管理
  • 2026 苏州卫生间免砸砖补漏 5 家专业企业能力解析 - 徽顺虹
  • Nemotron-Labs-Diffusion-3B-Base自推测模式实战:如何实现5.9倍推理加速
  • ▲基于OFDM+32QAM的通信链路matlab性能仿真,包含LDPC,Schmidl-Cox频偏估计和LS信道估计
  • 串扰抑制核心技法!高速六层板分层分区布线降噪
  • 204,800上下文长度实战:MiniMax-M2.7-NVFP4长文档处理完全指南
  • MATLAB R2024a安装避坑指南:系统兼容性与安全校验全解析
  • agenticSeek | 04: AgenticSeek 如何判断该派哪个 Agent?Router 机制拆解
  • 从手动复盘到AI协作:如何让daily_stock_analysis成为你的智能投资伙伴
  • NH2-PEG-NHBoc,科研级正交保护不对称双氨基功能化亲水PEG中间体
  • Light-Weight RefineNet项目概览:理解轻量级实时语义分割架构
  • 2026抚州黄金回收白银回收铂金回收中检持证鉴定师铂金银饰高价回收门店联系方式推荐
  • 青少年排球赛怎么拍?AI运动相机搞定全程记录
  • 2026年7月采购证书PK:CPPM和SCMP到底哪个好? - 众智商学院cppm官方
  • 2026年7月最新石家庄芝柏官方售后服务热线与网点地址查询 - 亨得利官方服务中心
  • OctoScreen vs 传统LCD面板:为什么这款开源工具能彻底改变你的3D打印体验?
  • 终极文档下载神器:30+平台一键免费保存PDF和图片
  • Mac Mouse Fix技术深度解析:解密macOS鼠标增强的底层架构与实战指南
  • YOLO11数据增强中的边界框合法性检查,包括原理、变换影响、修正过滤策略及集成(Albumentations等)实现
  • Tensor并行配置指南:Qwen3.5-397B-A17B-MoE-MXFP4在4GPU集群上的最佳实践
  • 【共享盘】ubuntu、windows
  • 如何用Mermaid Live Editor实现代码到图表的即时可视化?