基于华为云对话机器人技能平台的规则模板概述

华为云对话机器人服务中的技能平台,向机器人服务提供了一系列即插即用的技能,可为对话机器人增加了用户配置机器人的灵活度。

在邀测的过程中,我们总结了在技能平台上使用的规则配置上的一些功能和想法,与大家分享。

1.     规则定义

当前,基于华为云对话机器人技能平台的规则模板定义如下:

W表示通配符(wildcare), S表示槽(slot), D表示词典(Dictionary),(除了一些内置的用户常用问法之外,我们不允许用户将槽位内的词典加入规则模板中)C为普通片段(Common)支持或与等正则规则。

2.      接口说明

rules:

intention:

意图

rule:

W:

0-4

通配符片段(Widcard)

S:

a625e5ed-c55b-4244-a971-74f2f963cf8a

槽位片段(Slot)

C:

从|由|起始站是

普通片段(Common)

D:

sys.china_trainStation

字典片段(Dict)

isOrdered:

规则是否按顺序(当前为true),这里按顺序是指匹配的时候每个片段是否有序。我们当前设计中只支持规则中的片段有序,但是如果后续用户有需求想要片段在任意位置匹配皆可,那么我们的接口也可以向后兼容而不需要修改接口。

3.      功能实现

一次完成意图识别和槽抽取。

之前预测实例上槽填充和意图预测是两个接口,而规则模板其实一次提取就可以把意图识别和槽抽取都完成。因为在之前设计的规则模板当中我们复用了原有的词典抽取的接口,将规则按片段解析,每解析完成一个片段,就通过begin index还有end index从原有的query删除匹配到的这个词,然后继续做剩余子串的匹配,相当于是一个递归调用。

再加入一个接口,允许传入intent name即意图名称。

接口参数:   intent_name: 意图名称

             content:内容

             slot_ids:词槽列表

             model_first:冲突时是否模型优先

接口内部自己完成意图匹配,槽位填充的逻辑,其中匹配的优先级按照规则>词典>模型来进行,模型作为兜底。而model_first参数则是一个选择项,可以提升模型优先级,默认为false。

4.     规则模板展望

l  对话设置。机器人检测到用户静音、打断、要求停止、要求重述、无意图回复等行为时,根据用户行为给出相应的反馈。例如,用户静音时,需要询问用户是否还在;用户打断时,需要响应用户,请用户讲话;用户要求停止时,需要表示歉意进行安抚,并在超过一定次数时进入挂断流程。在技能平台与客户的对接过程中,包括意图澄清失败设置, 槽位澄清设置,是否允许从识别到的一个槽位的多个值进行区分(您想要的slot1的值是XX还是YY),是否允许返回提取到的槽位的所有值(适用多选场景)。对话设置最终会和多轮的会话能力息息相关,如何把设置做的简明易用也是一个需要仔细考虑的地方。

l  意图跳转。我们现在的技能平台只能支持平行意图,但是无论是外呼场景或者体检问卷,政府办事指南,其实很多场景都是树状的,我们将在未来进行支持。

l  将QA能力带入到技能平台。需要将QA知识库和将KBQA的能力集成到技能平台,提升连续对话的能力。

欢迎大家讨论和指正。

原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13165505.html