智能客服搭建(5)——5步骤之一定义对话系统
接下来的五篇博客会从对话系统搭建五个步骤上仔细进行学习。
2020.12.23插入: 这篇博客确实让我从整体上领会了对话系统搭建的流程。
2020.12.26插入;解决了排版乱的问题。
智能客服搭建专栏
欢迎大家来一起学习(#.#)。
文章目录
一、定义对话系统的方法
以下方法论其实就是在定义对话系统,后面的
- 确定场景边界
- 梳理业务要素和知识库
- 撰写故事线
- 抽取对话流程
都是下面方法论的具体展开。
二、确定场景边界
1.创建机器人定位(机器人的性格定位)
2.明确机器人的产品场景
- 明确产品的目标人群。
比方说:懂球帝是为了球迷提供的 - 搞清楚产品给目标人群带来了哪些服务/提供哪些产品。
比方说:携程提供在线票务购买服务,懂球帝提供最新的足球咨询也可以购买足球装备等 - 了解用户是什么类型的人,了解我们产品带给他们带来哪些服务,解决什么痛点,那么整个逻辑就是这款机器人。
example:
火车票预订的Chatbot 应该做&不应该做
回顾:机器人分类
案例:
三、梳理业务要素和知识库
1.确定优先级(首先要实现的功能)和关键信息要素(实现功能所需要的信息)
- 关键信息尽量多而全
2.任务要素梳理(定义变量)
根据前面的状态图梳理任务要素
四、撰写故事线
- 一个建议:不要先画流程图
任务型故事线
错误做法
凭借自己的想象和仅有的逻辑构想如下图所示的对话逻辑。
正确做法
撰写一个任务的完整对话,我们称之为“愉悦路径”,然后再“添油加醋”。
个人认为,类似于你设计一个主线任务,得先考虑理想情况下的任务完成路径,然后再一步步设置难度,比如说加个打怪,比如说加个等级限制等等,我称之为添油加醋。
总结:最大可能的模拟各种情况,通过自己的想象力构建不同的问答情况并作出解答,然后就是美化我们的对话系统,比如加个UI,比如更为合适的对话用词。
问答型故事线
这个比较贴切我们的智能客服系统
一个法宝:尽可能罗列出所有可能的问答对。因为问答型就是这种问题和答案匹配的问题,问答对越全,也就是我们的知识库越全,越容易体现智能。
注意
所有的故事线要保证真实性,尽可能还原真实场景对话,不能为了写故事线而写故事线。
五、抽取对话流程
方式一:流程图
简答来说就是绘制流程图
一个法宝:有点类似于面向过程程序设计,即将对话流程化。任务型和问答型机器人都有这种特点,但我感觉问答型要比知识型简单。毕竟不需要过多的信息也不用接入第三方服务。
以订票流程图为例:
其中的黄色模块非常笼统,可以更加细化
总结:业务流程图描述的是完整的业务流程,以业务处理过程为中心,一般没有数据的概念。流程图以动作推进业务,更加关注的是业务需要完成哪些操作。每一个动作基本上是“动词加名词”或者“动词”的形式。
方式二:泳道图
泳道图又称跨职能流程图=流程图+动作执行的对象
泳道图后面也可以加上流程描述,更好地描述流程。
业务线合并汇总(类似于第三步)
存在的价值:便于更好地设计/梳理流图
流程图绘制工具
- ProcessOn
- 百度脑图
六、设计UNIT对话逻辑
1.梳理业务逻辑
简单来说就是考虑真实场景下会有哪些情况出现,然后抽象出来给BOT
2.配置技能的对话意图/问答意图
目标:把业务逻辑教给对话系统
==》每个技能都由相关的意图组成
==》根据上述1的业务逻辑拆解完成技能下每个对话意图、问答意图的具体配置
在这个环节中,对话系统需要学会:
- 用户的意图是什么?
- 要完成用户的意图,需要理解哪些关键信息?
- 对话系统应该怎样回应用户?
- 有哪些规则需要遵守?
#以订票为例:
PS:澄清话术是怎么问用户
总结:配置技能的对话意图/问答意图步骤:
-
新建对话意图(eg:意图名称:BOOK_TICKET,意图别名:订票)
-
添加词槽
-
设置BOT回应(有三种回应方式:【答复】、【引导至对话意图】、【引导至问答意图】)
注意:
1.实际落地的时候需要在自己的业务代码里判断当前BOT解析的用户意图为订票,且用户提供了出发时间、出发站点、到达站点,这时你用这三个词槽值去火车票系统中找出符合条件的火车票, 并生成一个火车 票list返回给用户,供用户选择, 并完成支付。(任务型机器人)
2.引导至对话意图:是当前对话满足一定条件时把当前意图引导到另-一个对话意图,让用户进入另一个意图的对话中。
3.引导至问答意图:是当前对话满足一定条件时把当前意图引导到另一个问答意图,让用户直接在目标问答意图下提问并获取答案。(问答型机器人)
-
新建问答意图
-
设置预制技能(闲聊、问候、指令等)
3.标注对话数据
在【效果优化--训练数据】里尽可能多地添加对话模板、对话样本。其中对话样本不要是我们想象出来的句子,而是要贴切真实的业务场景(故事线设计的真实性,同 四、设置故事线部分)。对话BOT就像个儿童,教的越多越聪明。
具体方法:
1.配置对话模板
对话模板是对用户需求表达的一种规则抽象、配置好对话模板,可以快速识别不同表达方式的用户需求。
比如:“我想订餐” ==》订餐就可以形成一个对话模板
2.标注对话样本
需求分析最后一个阶段收集到的对话数据导入UNIT平台,然后给它们逐条标注意图、词槽。这部分数据可以用于后续的样本学习,让对话机器人更加智能,获得更好的对话理解泛化能力。
3.添加问答对
在需求分析阶段(主要集中在梳理业务要素和确定故事线阶段)就收集整理的问答对数据集中导入UNIT平台。
问题解答:
简单来说,有啥加啥,都有最好。
4.训练/体验
将BOT技能配置、对话模板、对话样本等在系统里训练形成模型,然后将模型放到沙盒里就可以试着体验自己的对话系统了。
值得注意:UNIT背后的深度学习等技术会帮我们解决训练系统这个问题,但也需要我们反复验证发现问题并优化配置并不断补充对话样本,然后再训练模型。这是一个反复优化的过程。
体验展示(终于看到结果):
5.应用调用
与真实的业务联动起来。
在【发布上线- -沙盒/生产环境】可以前往百度云创建应用,获取调用BOT的API Key/Secret Key。这部分可参考UNIT的API文档。UNIT已经与百度其他AI技术打通了 ,创建一个应用后,就可以方便的调用到百度AI的语音、图像识别等所有能力!
UNIT api文档请点下方链接:
智能客服搭建(0)——写在前面
相关文章
- 日志系统性能2大优化+5大准则
- 基于Hadoop的云盘系统客户端技术难点之一 上传和下载效率优化
- 获取系统环境变量
- nodejs中的模块系统:exports导出模块
- 使用 SAP UI5 系统测试工具 UIVeri5 的一个具体例子
- 系统调用追踪工具strace
- Atitit.biz业务系统 面向框架 面向模式---------数据映射imp
- AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理和区块链技术的乘客智能报警系统》案例的界面简介、功能介绍分享之总篇
- AI&BlockChain:“知名博主独家讲授”人工智能创新应用竞赛【精选实战作品】之《基于计算机视觉、自然语言处理、区块链和爬虫技术的智能会议系统》软件系统案例的界面简介、功能介绍分享之五、人脸图像
- 【排错必看】Windows系统安装mysql时常见问题及解决方法
- 【智能电网】分数阶微积分在决策系统中的应用,通过决策树实现智能电网管理(Matlab代码实现)
- 【鲲鹏 DevKit黑科技解读】│如何实现全链路系统问题90%精准诊断?
- 支付系统场景设计-支付状态处理
- win7系统下安装Splash。
- 【Android 逆向】Android 系统文件分析 ( /proc/ 目录文件分析 | 记录系统和进程信息 | version 内核版本信息文件 )
- 「PCB智能生产」MES系统在设备管理中的应用
- Android系统之仿sp智能指针实例(一百三十六)
- 智能威胁分析之图数据构建——关联数据为环境数据图:如资产、资产脆弱性、文件信息、用户信息、IT系统架构信息等 行为数据图:如网络侧检测告警、终端侧检测告警、文件分析日志、应用日志、蜜罐日志、沙箱日志等 情报数据图:各类外部威胁情报 知识数据图:各类知识库(如ATT&CK,CAPEC,CWE)等
- Android外设开发实战-智能闹钟系统
- Python基于OpenCV的智能交通灯系统(南北车流量比例)[源码&部署教程]
- 「PCB智能生产」MES系统在设备管理中的应用
- 智能问答系统一些思考——四类方法
- 探究linux系统之proc文件系统详解
- docker cobbler批量部署Linux/windows系统(一)——筑梦之路
- Win7系统自带的录屏工具怎么打开操作教学分享