概述
意图识别与交互:准确识别用户意图,根据用户的回答动态决策,区别于传统的一问一答模式,通过多轮人机交互来解决复杂场景的任务,比如保险推荐、保单查询、预约等场景。
因子管理:因子是一段取数逻辑,负责参数的传递和数据获取,内含加密/加签,保证数据安全性。比如根据保单号查询保单、根据用户信息预约体检等。
实体管理:云客服本身提供了通用的实体类型,比如数字、性别、金额等,对于具有业务含义的实体,比如公司保险产品名称、银行卡名称,可以通过自定义实体来做到精确提取。
意图识别与交互
意图列表
左侧菜单
。M标提醒:有改动但没有立刻生效。新增意图
可以通过点击新增意图按钮,选择版本后,进入意图编辑页面,或者直接导入意图。新建意图分为 表格版 和 图形版 。
如何备份:对于配置好的意图,可以通过导出意图,下载到本地,即使删除,也可以再通过导入找回。
如何查找:在右上角输入关键字并按搜索按钮或者回车,会返回意图名称包含关键字的意图列表。
如何修改:点击意图名称,会跳转到意图编辑页面,进行修改后保存。
如何删除:点击删除链接确认后可以删除意图,注意启用中的意图是无法直接删除的。
如何暂存/立即生效:如果修改意图后不选择立即生效(暂存),显示的意图不会受影响,通过意图测试,确认无误后,再点击生效,将改动同步到线上。
如何测试:在右侧意图测试的输入框内输入文本后回车即可测试意图。注意意图测试是测试意图的最新版(暂存版)。
意图管理(表格版)
表格版的意图编辑页面答题分为五个模块:基础信息、问句举例、对话管理、输出配置和关联聊天窗。
基础信息
意图名称:必填,意图名称保证唯一。
展示意图名称开关:开关用来控制聊天窗是否带上意图名称,开启时,聊天窗交互展示会带上意图名称。
①:意图名称。
②:交互内容。
问句举例
问句举例是触发意图的入口,可以配置多个样例句,样例句越多,意图识别能力也会越强。
例如我们要实现分期贷款场景的触发,我们列举了5个例句,如下图:
后台会对这些句子做适当的扩展和泛化,基于字面和语义相似度,用户再说类似于
能贷款吗?
想要分期贷款
都可以进入到该意图。
问句举例不仅可以触发意图进入,在进入意图的同时可以通过关联交互来辅助信息抽取。
如上图所示,分别选中问句举例中的2000块和4个月,关联到分期金额和分期期数上,这样用户再说类似
我想贷xx钱 我想贷点钱,xx还清
这样的句子,都会进入到意图,并且分期期数和分期金额已经拿到值,不需要再向用户发起反问。
重复提醒:当配置的意图比较多时,您可能会担心意图间的问句相似度很高而导致非预期的意图被触发。在每个问句被添加时,如果其他的意图有相似度很高的句子,这时会在页面右上角给出提示。
对话管理
对话管理就是定制人机交互的过程。还是以分期贷款场景举例。为了完成分期贷款的业务,我们需要贷款的一些要素:分期期数、分期金额、贷款方式等信息。我们把一次用户咨询和机器人回复叫做一次交互。交互的目的就是为了获取这些要素,从而进行下一步的操作。如下图所示:
交互是顺序敏感的,通过左侧的箭头按钮可以调整顺序。
交互的交互名称、交互内容、实体类型、前置条件默认可见,点击展开后会显示交互码、关联因子、自动填充、重复次数、提示和上下文填充等配置项。
交互名称:点击铅笔修改后回车保存,意图里的交互名称不能重复。
交互内容:包括交互内容、是否多选、选项类型、选项列表(因子列表)。点击铅笔弹出对话框,如下图所示:
交互内容可以输入文字,不能为空、选项类型可以选择问句或者因子。是否多选、选项类型和选项列表(因子列表)搭配起来用于候选项的配置。选项列表最终展示在聊天窗的效果如下图所示:
交互内容可以引入变量,通过@符号来引入交互,#符号来引入因子。在交互内容中输入@或者#,会提示对应的交互和因子:
上图展示了#提示因子的效果,注意#符号前面必须有空额或者在行首,同样的@符号可以提示交互:
实体类型:它是信息抽取的核心,分为系统和自定义两大类,系统提供的实体一般是通用领域的实体,比如数字、货币、地点、年龄等类型,另一类自定义实体类型在 实体管理 中配置。
前置条件:它是一个逻辑表达式,用来控制流程的跳转,只有当前置条件满足时,该交互才会有资格被执行。
点击前置条件按钮,弹出规则编辑对话框:
①区域:前置条件的操作对象分为交互、因子和常量,可以直接拖拽到输出规则。等额本息期数是变量名,数字是数据类型。
②区域:操作符可以直接拖拽到输出规则。
③区域:输出规则。
说明:规则编辑对话框分为操作对象、操作符和规则表达式三块,操作对象和操作符可以被直接拖拽到输入规则区域。操作对象分为交互、因子和常量三大类,每个操作对象都对应一个数据类型。
操作对象的数据类型:目前支持的数据类型为数字、字符串和布尔值。交互的数据类型由交互的实体类型决定,自定义的实体类型都是字符串。目前系统默认提供的实体中,数字、年龄和货币的数据类型为数字,其余均为字符串。因子的数据由因子的返回值类型决定。常量的数据类型可以自己选择数据类型。
规则语法校验:点击规则编辑右下角的确定按钮,系统首先会帮您校验规则的合法性。比如减/乘/除操作符不能用于字符串、括号不匹配等。
交互码:如果想将交互得到的信息传递给因子,交互码就派上用场。每个交互经过实体抽取后都会得到一个值,交互码和值会构成一个键值对填充到因子的入参中,交互码和因子的入参key一一对应。比如我们定义了分期金额、贷款方式和期数的交互码:
如果我们还有一个分期贷款登记的因子,因子的参数与上图的一一对应:
关联因子&自动填充:如果选择了关联因子和自动填充,在意图被触发时会进行因子采集和填充,如果一旦填充成功,该交互的值就已经获取到,无需与用户多进行一轮交互。利用这个特性,我们可以实现类似这种功能:
说明一个意图需要获取用户信息进行下一步动作,用户可能在登录状态下进入意图,也可能在非登录状态下进入意图,对于登录的用户不用询问,对于非登录的用户询问用户信息。
重复次数&提示:在交互的过程中,机器人发起反问时,用户的回答非常模糊或者答非所问,我们可以通过设置重复次数和提示,来做到更友好的交互。
上下文填充:上下文特指交互过程中获取的信息,填充是将上下文填充到用户的query中。
输出配置
当所有满足条件(前置条件满足)的交互都获取到值后,会进入最终的输出配置。
输出配置可以多条策略,一条策略包含一条规则和若干类型的输出。
策略也是顺序敏感的,可以停用/启用/删除,策略的规则和对话管理中的前置条件一样。策略的输出目前支持三种类型:通用文本、知识点和透传数据。
通用文本:和对话管理的交互内容一样,支持用@符号引用交互,#符号引用因子。
知识点:可以直接填写知识点id,注意它和通用文本都属于展示类信息,属于互斥关系。
透传数据也是一段文本,它区分于通用文本和知识点这两类展示类信息,可以和它们并存,云客服不解析只做透传。
关联聊天窗
配置完基础信息、问句举例、对话管理和输出配置后,一个意图的逻辑就完成了,而聊天窗是意图生效的渠道,如果不配置,默认是对所有聊天窗生效,配置了就是仅对配置聊天窗生效。
意图测试
意图测试在右侧的固定区域:
如何测试:在右上角文本框内输入文字并回车后,会展示返回结果和当前所处的意图以及一些调试信息。
与在聊天窗问答的区别:
意图测试不感知意图状态,用最新(暂存)的意图,而聊天窗问答只会考虑启用状态的意图,且是生效过的意图。
意图测试只会考虑意图,而聊天窗问答会考虑模板拦截、知识点问答、闲聊等各类模型。
意图管理(图形版)
图形版的意图是为了更好解决表格版中带分支场景的不直观、条件重复配置的问题。相比于表格版,图形版用流程图的凡是来做对话管理和输出配置,逻辑更加直观和清晰,并针对意图中断的情况设置了默认输出。
基础信息
与表格版完全一致。
问句举例
与表格版完全一致。
对话管理
图形版意图和表格版意图的最主要差别就是图形版用有向图的方式(替代平铺的方式)来做对话管理。我们提供了表格版切换到图形版的功能,在意图列表页,点击切换到新版本,此时会新创建一个图形版的意图。
切换到图形版本后:
相比于平铺的方式,图形版的对话管理更加直观。看到这里您可能明白了,表格版中的交互就是图形版中的一个节点,表格版中交互的前置条件就是边。
交互节点:双击交互节点,弹出交互节点对话框。
点击展开查看更多,可以查看交互码、重复提示等高级配置信息。
交互节点的节点名称、实体类型等配置项和表格版中的交互完全一样,但交互节点和表格版中的交互有两个差别:
说明交互内容更加丰富:交互内容除了通用文本外,可以支持知识点和透传数据。 优先级:优先级的作用是决定不互斥的兄弟节点顺序。比如分期期数和分期金额,这两个交互节点不互斥,谁会被执行呢?
优先级不一样,优先级大的在前。 如果优先级一样,按照边的原始添加先后顺序来决定。总之,顺序和节点在画布上的位置信息无关。
边:点击添加关联按钮后,可以连接两个节点。
在边上双击,弹出规则编辑框。该规则编辑框与表格版意图中交互的前置条件一样。
说明边的限制:开始节点不能有入边。 策略节点不能有出边。 连个节点间只允许有一条直连边。 允许有环,但出于安全考虑,对于全部由动作节点(自驱动类型的节点)构成的环,每个节点只会执行一次。
除了交互节点外,我们另外新增了两种节点类型:策略节点和动作节点。
策略节点:策略节点类似表格版中的输出配置。
动作节点:动作节点不需要与外界交互,属于自驱动的节点。一般用来一些额外的数据调用。举一个实际的应用场景:比如在网上催收业务中,进入意图后,需要给用户发送一条短信,在进行对话。
动作节点的内容就是一个因子集合:
默认输出
当意图中断时,会走到默认输出,意图中断时交互节点抽取不到信息且超过了设定的重复次数。比如一个交互节点向用户咨询年龄,而用户一直故意岔开话题导致流程无法继续进行下去,意图就会中断。
默认输出实际上就是一条规则为空、状态启用的策略,在意图中断时作为兜底的文案输出。
关联聊天窗
与表格版的一致。
因子管理
意图识别与交互的核心之一就是数据调用,而前面提到过多次的因子,就是负责数据传递、外围API调用和结果解析。
点击左侧导航栏 服务配置 => 因子管理 进度到因子管理列表页。
因子编辑
除因子名称和返回值类型为必填项,其余均为非必填项。
请求地址:一个URL,目前只支持HTTP协议。注意:IP/域名需要通过云客服审核。UTL也可以为空,我们把这种因子叫做虚拟因子。
入参:入参由参数名、参数码、参数值和是否必须构成。系统目前有一个磨人的入参就是用户id,参数码为userId。因此在定义入参时无需考虑用户id,参数码也不要设置成userId。
说明参数名:对参数的描述信息。
参数码:作为参数传递的Key。
参数值:如果您的接口有一些参数不需要从交互中获取但是需要传递,可以设置参数值来补位。
是否必须:这个选项是用来减少意图交互过程中的没必要调用,没有特殊情况建议勾选。
请求方式: GET/POST。
请求加签&返回加密:加密开关。
出参Key:参考入参。
默认返回值:当因子调用发生异常时,默认值健作为返回值返回。
删除因子
不能删除启用状态的因子。
停用/启用因子
直接切换开关后可以改变因子的状态,停用的因子将不会发起数据调用。
修改后的因子状态会被置为停用,重新启用后才会生效。
因子测试
输入参数后点击测试,调用结果会展示在测试对话框下方的灰色区域。
入参来源&出参规范
入参来源:入参的值目前有两个来源:
说明通过交互传入,交互码和入参码一一对应。
通过访客名片传入,cinfo,extInfo中的key和入参码一一对应。
出参规范:返回统一格式为:
{ success: true/false, message: "错误信息", data: { id: 12345678, age: 28, keyN: valueN } }
其中 success 表示此次调用是否成功,若失败最好附上失败信息,失败信息放在 message 字段。 data 里的 key-value 就是具体的数据,若因子设置了出参 key,data 中对应 key 的值就是因子的值。比如设置出参 key 为 age ,那么这个因子的值就等于28.当然出参 key 也可以为空,此时会将整个 data 作为返回值。
实体/模型管理
意图识别与交互的另一个核心是信息提取。在交互过程中,信息提取主要分为两类:
一类是从 query 中提取出有效信息,这类我们成为实体抽取。系统提供了日期、时间、城市、数字、金额等实体,而另外一些具有业务含义的实体,需要通过自定义来实现,比如银行卡名称、保险名、套餐名等。
另一类是需要识别出 query 背后的真正含义,这类我们称为分类模型。比如我们需要根据 query 判断用户此时是否有空:
说明当 query = “我在开车”、query = “我正在忙”等时,判断为没空。
当 query = “你又什么问题”、query = “直接说吧”等时,判断为有空。
分类模型使用的是有监督的机器学习算法,因此分类模型需要一定量的打标语料。
实体编辑
进入到实体编辑页面后,填写实体名称和实体词表。
实体名称唯一,也不能与系统默认的实体重名。词表由词(代表词)和同义词构成,在实体抽取过程中如果提取到同义词,也最终会转换成代表词。
实体抽取测试
新增一个意图,实体类型选择银行卡类型。
在聊天窗的测试效果:
抽取到“商务卡”后,转换成代表词“公务卡”。