说明:也是没有段子的一天…在没有段子的日子里…我们来研究下阿里云的客服机器人…
一、功能调查

官网地址:https://help.aliyun.com/document_detail/197584.html

SDK、API地址:https://help.aliyun.com/document_detail/60757.html

功能清单访问:https://help.aliyun.com/document_detail/197584.html

智能客服 java开源 智能客服sdk_数据


智能机器人有收费版,有体验版。像wshanshi这种尝鲜的…就来个体验版吧…

智能客服 java开源 智能客服sdk_自定义_02


友情提醒:体验版只可创建一个机器人,提供免费调用次数1000次,超出调用次数,费用自费。

二、创建管理Demo示例
2.1、可创建管理机器人

智能客服 java开源 智能客服sdk_自定义_03

2.2、可自定义问答词库

智能客服 java开源 智能客服sdk_数据_04


智能客服 java开源 智能客服sdk_阿里云_05

2.3、可定义机器人绑定FAQ类目库

绑定了FAQ类目库后,所有对话答复从绑定的问答库中匹配数据。

智能客服 java开源 智能客服sdk_阿里云_06

2.4、可定义对话工厂

智能客服 java开源 智能客服sdk_阿里云_07

2.5、可开启闲聊模式

智能客服 java开源 智能客服sdk_阿里云_08

三、会话工厂配置自定义数据收集、函数调用

重点来了,来了~

智能客服 java开源 智能客服sdk_智能客服 java开源_09


下面示例中,楼主将针对于如何收集用户输入的数据,作为参数进行自定义函数接口调用。

3.1、点击去会话工厂

智能客服 java开源 智能客服sdk_正则表达式_10

3.2、新建对话流

智能客服 java开源 智能客服sdk_智能客服 java开源_11

3.3、新增意图

智能客服 java开源 智能客服sdk_智能客服 java开源_12

3.4、编辑意图

输入流程触发的话语。当用户向机器人咨询包含话语关键字时,触发该流程。

智能客服 java开源 智能客服sdk_数据_13

3.5、自定义流程配置

点击意图,配置流程。选择用户节点,输入节点名称,触发方式选择意图触发。(当用户输入数据关键字匹配到相应话术时,触发流程往下走)。

智能客服 java开源 智能客服sdk_数据_14


既然用户有问,那肯定有答。遵循:“顾客是上帝,顾客说啥都对的理念.”…你懂得…

智能客服 java开源 智能客服sdk_阿里云_15


接下来我们需要定义一个回复节点。(下图示例中,楼主放的是一个引导语。引导用户输入一些关键字,方便收集起来,作为我们后面流程中调用自定义接口的参数。)

智能客服 java开源 智能客服sdk_数据_16


我们引导客户输入,所以还需要定义一个用户输入节点。

智能客服 java开源 智能客服sdk_智能客服 java开源_17


按照上图流程,我们引导客户输入编号。但是客户不一定输入编号…

智能客服 java开源 智能客服sdk_数据_18


“让我往东,我偏偏往西…哎…玩的就是西海岸…” 那这时候怎么办呢?这…试想下,我们之所以引导用户去输入关键字(编号),目的是为了收集这个关键词,作为参数请求接口的。所以,一方面要考虑如何收集用户输入的数据,另一方面要考虑如何收集我们想要的数据。

智能客服 java开源 智能客服sdk_自定义_19


办法嘛,还是有的。你叫我大哥,我告诉你。哈哈哈哈…

智能客服 java开源 智能客服sdk_阿里云_20


方案:用户输入数据收集【定义正则表达式,意图+正则匹配+填槽】。

具体步骤如下:

  • 首先,新增一个专门收集用户输入信息的意图。
  • 编辑意图,填写相关的信息。

若上面使用识别能力未定义,是保存不了的。接下来我们说明下这个识别能力是什么。

所谓识别能力,无非是对用户输入的信息进行辨别。辨别方式有两种,一种是标准实体匹配,另一种是正则实体匹配。

两种方法,那区别是什么呢?

1、新建标准实体

智能客服 java开源 智能客服sdk_阿里云_21


需要把数据维护到实体成员中,使用时默认从某一实体配置的成员变量中进行匹配。说白了就是从固定的圈子中匹配,要想匹配到数据,就得维护进去。弊端:不是很灵活,需要维护。没有导入功能,数据量大的话,不好维护。“嘿,兄弟!圈子小了哦…”

智能客服 java开源 智能客服sdk_自定义_22


2、新建正则实体

智能客服 java开源 智能客服sdk_数据_23


可定义正则表达式对数据进行收集,相对来说较为灵活。由于示例中我自定义的函数所需参数是Integer类型的编号,所以我的正则表达式自然写的就是收集数字的了,如下图所示。

智能客服 java开源 智能客服sdk_正则表达式_24


再回到上方流程,若用户输入了编号,我们需要收集起来。那如何收集用户输入的参数呢?

首先,在用户输入节点选择条件触发。条件就是意图=自定义收集参数的意图。

举个栗子,在回复“输入编号试试看?”之后,假设用户输入77(当然也可能输入非数值)。

由于我们定义了收集数值的正则表达式,若用户在此节点输入的是数值,则符合正则匹配规则,就能收集该数据。

智能客服 java开源 智能客服sdk_智能客服 java开源_25


通过填槽节点可以收集数据,如下定义填槽节点。

智能客服 java开源 智能客服sdk_智能客服 java开源_26


再回头看这里,实质上是拿用户输入的信息与绑定的正则实体进行匹配,若符合规则,则通过填槽收集参数。

智能客服 java开源 智能客服sdk_自定义_27


智能客服 java开源 智能客服sdk_数据_28


当然,如果一开始你选择的是新建标准实体那种形式,这里匹配的就是实体内的成员变量喽!接着往下走,参数收集到了,那调用接口白。搞!定义一个函数节点,配置我们自定义的接口,将收集到的数据作为参数。(收集到的参数:${收集用户输入.用户输入.origin})

智能客服 java开源 智能客服sdk_阿里云_29


函数节点变量传参,参数说明可参考官网文档。友情链接:https://help.aliyun.com/document_detail/84657.html

智能客服 java开源 智能客服sdk_正则表达式_30


接口调用后当然要返回数据了,所以接下来需要定义一个回复节点,将调用结果进行输出。

智能客服 java开源 智能客服sdk_正则表达式_31


好了,到此为止示例流程定义就结束了。接下来我们测试一下机器人。

智能客服 java开源 智能客服sdk_数据_32


可以看到,已经请求了外部函数,成功返回了数据。

智能客服 java开源 智能客服sdk_阿里云_33


至此,完整的流程配置、测试。就结束了…