6.3 智能客服系统端到端开发:对话管理加RAG加人工转接

0 阅读6分钟

6.3 智能客服系统端到端开发:对话管理加RAG加人工转接

一、系统架构(与书 6.3 对应)

《大模型应用开发极简入门》第6章「实战项目:端到端AI应用」中,综合案例1为智能客服系统对话管理 + RAG + 工具调用 + 人工转接。本节与之一一对应,给出架构、流程与实现要点,便于端到端搭建。

智能客服系统包含:对话管理(多轮上下文)、RAG(知识库检索)、人工转接(无法回答时转人工)。


二、核心流程

  1. 用户提问 → 可选「意图识别」判断是否需查知识库
  2. 若需知识库:检索 RAG(Top-K 通常 3–5),将检索结果注入 system 或 user
  3. 对话历史(session_id + messages)与当前问题、检索结果一起送入 LLM 生成回复
  4. 若置信度低、用户说「转人工」、或模型输出「无法回答」→ 触发转接,进入人工队列

三、实现要点

3.1 对话历史管理

  • 为每个会话维护 session_id,将历史 messages 存 Redis 或 DB,每次请求加载最近 N 轮,避免超长上下文。
  • 与第 2、3 章多轮对话一致:每次请求携带 [system, user1, assistant1, ..., user_current],并将本轮 assistant 写回存储。

3.2 RAG 检索

  • 知识库为产品手册、FAQ、工单知识等,用 LlamaIndex 或自建向量库;用户问题转为向量后检索 Top-K,将片段拼成「参考以下内容回答」注入提示。
  • 回答中可要求模型标注「根据XX文档」,便于用户核实(与书中 RAG 来源标注一致)。

3.3 转接触发条件

  • 用户主动:识别「转人工」「找客服」等关键词,直接转接。
  • 模型侧:要求模型在无法从知识库得到答案时输出固定标记(如 [需转人工]),后端解析后转接。
  • 置信度:若使用 4.5 节的置信度输出,confidence 为 low 时自动转人工或提示用户是否转接。
  • 超时/异常:请求超时或 API 错误时,友好提示并提供转人工入口。

3.4 工具调用(可选)

若需查订单、查物流、创建工单,可接入 Function Calling;Agent 根据用户意图调用相应工具,再将结果与对话一起呈现。与书中「工具调用 + 人工转接」一致。


四、技术栈建议

  • 接入层:API 网关鉴权、限流
  • 逻辑层:会话服务(对话管理)+ RAG 服务(检索)+ 转接服务(工单/排队)
  • 数据层:向量库(RAG)、Redis(会话)、DB(工单与用户信息)
  • 监控:请求量、转接率、平均对话轮次、用户满意度

五、会话与 RAG 的接口设计示例(伪代码)

便于理解各模块如何串联,下面给出简化接口示意(非完整代码):(1)会话服务get_messages(session_id) 返回最近 N 轮 messages;append_message(session_id, role, content) 追加一条并持久化。(2)RAG 服务retrieve(query, top_k=5) 返回检索到的文本片段列表。(3)编排层:先 retrieve(user_input) 得到 context,再 get_messages(session_id) 得到 history,将 [system(含 RAG context), ...history, user(user_input)] 送入 LLM,得到 reply 后 append_message(session_id, "assistant", reply),并解析 reply 是否包含转接标记或置信度。书中 6.3 综合案例1 的「对话管理 + RAG + 人工转接」在本节即体现为上述模块划分与数据流,工具调用(查订单等)可在编排层增加「意图识别 → 调用 Function Calling → 将结果拼入 messages」的步骤。


六、与第 2、3、5 章能力的衔接

对话管理依赖第 2.5 节的 messages 结构与多轮维护、第 3.3 节的会话持久化;RAG 依赖第 5.4、5.5 节的索引与检索;工具调用依赖第 2.9 节 Function Calling 或第 5.6 节 Agent。因此智能客服是全书多章能力的综合应用:先打好 API、多轮对话、RAG、Agent 基础,再按本节串联即可。书中 6.3 综合案例1 的「对话管理 + RAG + 工具调用 + 人工转接」在本节已拆解为可实施的步骤与技术栈,便于团队分工与迭代。


八、与 6.2 节生产级部署的衔接

智能客服上线时需符合 6.2 节的生产级要求:接入层用网关做鉴权与限流,避免单用户占满配额;会话与 RAG 服务可多实例部署,通过负载均衡分发;监控需包含转接率、平均轮次、满意度等业务指标,便于优化知识库与提示。若客服量较大,可对高频 FAQ 做结果缓存(见 6.2 缓存策略),降低延迟与成本。书中端到端案例与生产级部署的衔接点即在于:本节负责「功能架构与数据流」,6.2 节负责「运行时的可用性、安全与可观测性」。


七、小结

智能客服是书中「提示工程 + RAG + Agent + 人工转接」的典型融合场景。掌握对话管理、RAG 与转接逻辑,即可搭建完整的客服系统。下一节将介绍企业数据分析师 Agent。建议先实现「对话 + RAG」最小闭环,再逐步加入工具调用与转接,便于分阶段验证效果与成本。


九、与 4.5 防御性提示、5.4 RAG 的配合

4.5 节防御性提示:RAG 注入的上下文应配合「仅基于以下内容回答;若无法从资料中找到答案,请说明并建议转人工」,与 4.5 的限定知识源、承认不确定性一致;置信度为 low 时触发转接即 4.5 人工复核的落地。5.4 节 RAG:知识库的构建、分块、检索与 5.4、5.5 节一致;智能客服的「检索 → 注入 → 生成」即 RAG 标准流程。将本节对话管理、转接条件与 4.5、5.4 结合,即可形成「安全、可兜底」的客服回答管线,与书中综合案例1 的完整要求一致。


十、小结(复述)

智能客服对应书中 6.3 综合案例1:对话管理 + RAG + 工具调用 + 人工转接。按会话管理、RAG 检索、转接触发与可选工具调用四块实现,再按 6.2 做网关与监控,即可交付可用客服系统。书中端到端 AI 应用的第一个案例在本节已可实施。


十一、技术栈与接口设计补充

  • 会话服务get_messages(session_id) 返回最近 N 轮 messages;append_message(session_id, role, content) 追加并持久化。存储可用 Redis(key 为 session_id,value 为序列化 messages)或 DB。
  • RAG 服务retrieve(query, top_k=5) 返回检索到的文本片段列表;知识库用 LlamaIndex 或自建向量库,与 5.4、5.5 节一致。
  • 编排层:先 retrieve(user_input) 得到 context,再 get_messages(session_id) 得到 history,将 [system(含 RAG context), ...history, user(user_input)] 送入 LLM;得到 reply 后 append_message,并解析是否包含转接标记或置信度 low。
  • 转接服务:识别到转接条件后,创建工单或写入排队队列,并返回转接中提示;与现有客服系统对接时需约定工单格式与回调方式。

十二、与 6.1 融合方案、6.2 部署的对应关系

6.1 节融合方案中「智能客服」的技术组合(提示工程 + RAG + Agent/工具 + 人工转接)在本节已拆解为可实施的模块与数据流。6.2 节生产级部署要求(网关、限流、监控、降级)在智能客服上线时同样适用:网关做鉴权与限流,监控需包含转接率、平均对话轮次、用户满意度等业务指标,便于优化知识库与提示。建议先实现「对话 + RAG」最小闭环,再逐步加入工具调用与转接,分阶段验证效果与成本。


下一节预告:6.4 企业数据分析师Agent:数据查询与报告生成实战