章节三十八:ChitChatHandler实现

ChitChatHandler:负责处理闲聊类请求。

整体流程:

第一步:DialogueEngine 进入 chitchat 轨道,调用 ChitchatHandler.handle(state)。

第二步:读取 pending_turn.input_message(当前用户消息)。

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

第四步:ChitchatResponder.respond 调用大模型生成回复。

第五步:返回 BotMessage。

核心对象:

对象 作用
ChitchatHandler 闲聊轨道入口
ChitchatResponder 调用 LLM 生成闲聊回复
chitchat/response 闲聊提示词模板

2. ChitChatHandler

ChitchatHandler 是闲聊轨道的入口。

# 功能说明:ChitchatHandler 闲聊处理器
# 接收 DialogueState,提取用户消息和最近历史
# 调用 ChitchatResponder 生成回复

3. ChitChatResponder

ChitchatResponder 负责调用 LLM 生成闲聊回复。

处理流程:

第一步:收到 user_message 和 recent_turns。

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

第三步:组装 prompt、llm、output_parser(LangChain 链式调用)。

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

第五步:返回 BotMessage。

# 功能说明:ChitchatResponder 闲聊回复生成器
# 1. 格式化用户消息和对话历史
# 2. 加载 chitchat_respond 提示词模板(Jinja2 格式)
# 3. 组装 LangChain 调用链:prompt | llm | StrOutputParser
# 4. 异步调用大模型生成回复
# 5. 包装为 BotMessage 返回

调用 LLM 的提示词要点:

  • 角色:中文电商客服助手,语气自然、友好、简洁
  • 如果用户打招呼,自然回一句中文问候
  • 如果用户问你是谁,说明自己是"Atguigu 电商助手"
  • 如果用户问的是基于最近对话的简单社交问题,直接自然回答
  • 不要主动切回业务办理,除非用户明确提出电商诉求

涉及变量:

变量 来源
history 最近对话历史
user_message 当前用户消息
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐