创建任务型技能

创建技能

技能类似于一个APP,通过语音对话完成一个或者多个特定功能。一个技能主要由任务和词库构成。
注意: 目前推荐开发者使用谷歌Chrome浏览器.

技能定制流程

Minion

1.创建技能,任务。
2.在意图内输入用户说法,进行说法标注。
3.选择DUI控件,添加数据资源,进行资源配置。
4.添加对话回复内容。
5.保存所有内容后,如果引用的数据资源是web资源,可以点击测试按钮,进行在线测试。
6.点击右侧发布按钮按钮进入技能发布和提交模块,选择发布技能。

新建技能

在技能页面选择“创建我的技能”,输入技能名称(技能名称只支持中文,字母和数字的组合)和技能描述(非必填项),选择技能分类。完成这些操作后点击“创建”即可创建一个新技能,直接进入技能编辑页面。

创建任务

创建任务需要输入任务名称,点击“创建”。任务名称同样也支持中文,字母和数字的组合。

对话定制

这里以导航任务为例,演示如何定制对话。

创建意图

创建任务并命名【导航】。任务创建完成后自动跳到意图界面,自动建立一个【自定义意图1】。修改【自定义意图1】名称为【导航】。
Minion

用户说法

自定义用户可能的说法,按回车或者点击“确认”添加,也可通过“批量添加说法”,批量输入,一条说法一行。用户说法只支持中英用户在对话交互过程中,可能会使用到丰富多样的句式发起命令或提问,开发者需要尽可能地完善用户说法,按回车或者点击“确认”添加,也可通过“批量添加说法”,批量输入,一条说法一行。


以导航技能为例,用户可能会用到以下句式:

「导航到深圳大学」
「从上海火车站到东方明珠怎么走」


将上述语料中提取出的关键字替换为语义槽后,可以得到以下说法:

「导航去#终点名称# 」
「从#起点名称#到#终点名称#怎么走」
替换中使用到的##为语义槽引用符号,必须成对出现,中间填写语义槽名称。


为了方便开发者快速编写句式相似的用户说法,DUI支持在用户说法中加入正则符号“[]”“()”“|”的使用:

(): 必选符号,必须成对出现,不允许嵌套
[]: 可选符号,必须成对出现,不允许嵌套
|: 或(仅限于出现在括号内)


使用小括号,「(导航|出发)去#终点名称#」等同于「导航去#终点名称#」、「出发去#终点名称#」
使用中括号,「从#起点名称#到#终点名称#[怎么走|帮我导航]」等同于从「#起点名称#到#终点名称#」、「从#起点名称#到#终点名称#怎么走」、「从#起点名称#到#终点名称#帮我导航」

说法标注

除将语义槽直接写入说法的形式之外,DUI平台也支持添加例句,通过对例句进行说法标注、将语义槽绑定词库的形式来完善用户说法。

绑定内置词库

1.选中说法中需要标注为语义槽的词,如用户说法可选中「东方明珠」
2.可拖动弹窗中滚动条找到词库【sys.地址】,也可以通过输入「地址」两个字来搜索符合条件的词库, 点击词库【sys.地址】,绑定内置词库。
3.在语义槽部分将语义槽名称改为“目的地”。
Minion

绑定自定义词库:

1.选中说法中需要标注为语义槽的词「东方明珠」后会出现一个弹窗,在弹窗下方的输入框中输入需要创建的自定义的词库的名称;
2.点击“+”按钮,DUI平台会在新建自定义词库的同时完成标注工作。

Minion

这里需要标注的词句如下(将这些词句都绑定内置词库):

还需要标注的词 绑定的词库名
苏州思必驰 sys.地址
上海 sys.地址
深圳大学 sys.地址

表格标题1 表格标题2
第一行第一列 第一行第二列
第二行第一列 第二行第二列

在DUI平台还可以通过整句标注的方法来实现指代的功能,即让机器理解「导航去那里」,「那里天气怎么样」中的“那里”指代的是什么。

必需语义槽

如用户说“我要导航”,这个说法里面不含任何语义槽,在这种情况下,需要设置一个必需语义槽#目的地#,在用户说这句话的情况下,系统会问用户“请问您要去哪里?”,然后从用户回复中获取语义槽#目的地#的值,从而使导航进行下去。
Minion

选择DUI控件

DUI平台一共有五种控件:图文卡片,列表,音乐播放,内嵌网页和自定义控件。
在本例中,导航选用列表控件。选择此控件后会自动在意图列表中新建一个内置意图【sys.用户选择】。这个是选择控件的时候自动生成的,不需要用户建立。

DUI控件介绍

自定义控件开发说明

资源调用

语音交互过程通常需要查询数据资源来获取一些信息。如用户询问“今天天气怎么样”时就需要使用查询天气相关信息的数据资源,从而回答用户的问题,给予用户所需的信息。

DUI数据资源介绍

添加API资源

开发者可以通过在API资源地址栏中输入关键字,回车键进行搜索,在搜索后的结果中选择需要的资源。开发者也可以通过直接输入API地址来添加API资源。

在导航实例中,使用思必驰开放平台提供现成的API,不需要开发者重新对接第三方的地图厂商。POI查找API支持的传入参数及功能:
1. 传入参数:destination,表示目的地
2. 返回数据:20个相关的地址数据,包括名称,详细地址,经纬度
在API地址框中输入“POI”,按回车键,会在下拉列表中出现相关的资源,点击API资源完成添加操作。
Minion

配置API参数

每一个数据源都有自己的参数,需要查看当前使用资源的参数说明,才能完成资源参数配置。
Minion

除使用平台提供的API资源外,开发者还可以使用自定义API,或者编写一段Function 代码块。DUI平台自动将Function代码块部署为HTTP服务,作为技能的一种数据资源,供DUI平台的其他服务调用。

API接口编写说明

Function编写示例

对话回复

对话回复即系统在客户端对用户的请求,命令,询问等语音行为的回复内容或回复动作。如: 用户提出请求“导航去苏州”,系统在客户端对用户的对话回复就可以是:“正在为您导航”并且执行一个打开地图准备导航的动作。

对话回复详细介绍

在导航实例中,数据资源查询结果有一个参数count,表示搜索地址的数量:
1)当count = 1的时候,表示通过API刚好找到一个结果
2)当count > 1的时候,表示通过API找到多个结果
3)当count = 0 的时候,表示API没有找到结果
根据这三个不同的返回结果要设定不同的回复内容。回复内容需要手动输入,按enter键保存输入内容或者点击“+”完成添加。

找到一个结果:

输入回复内容:「已为您找到一个#目的地#,请问您要去这里么?」
下一轮对话:【导航】【sys.确认】和【sys.取消】
推荐语:「确认」,「取消」
备注:这里要添加两个内置意图:【sys.确认】和【sys.取消】

Minion

找到多个结果:

  • 回复内容为:「找到多个#目的地#相关结果,请问您要去哪一个」
    下一轮对话:【sys.用户选择】【导航】
    推荐语:「第一页」,「上一页」,「下一页」,「第一个」,「取消」
    Minion

没有找到结果:

  • 输入回复内容:「没找到#目的地#相关结果,你可以换一个地址」
    下一轮对话:【导航】

sys.用户选择

【sys.用户选择】意图可以用来定制用户在列表选择地址之后的对话和执行。在此意图的定制界面中,已经内置了常见的选择和翻页说法,开发者不需要重新标注,只需要添加对话回复内容。DUI平台已经为开发者预先设置好了导航的客户端动作,只需要在对话定制时使用即可。
1. 输入回复内容:「即将为你开始导航」
2. 客户端动作:navi.route?lat=$parameters.latitude$&lng=$parameters.longitude$
3. 下一轮对话:【结束对话】

注意:
此处执行客户端动作需要在手机端安装高德地图车镜版
参数说明以及客户端动作响应方式详见客户端动作说明

sys.确认&sys.取消

在内置意图【sys.确认】和【sys.取消】中,已经内置了了常见的确认和取消说法,开发者不需要重新标注,只需要添加对话回复内容即可。
意图【sys.确认】和【sys.取消】的具体内容详见意图

【sys.确认】

1.对话回复内容:「即将开始为您导航」
2.客户端动作:navi.route?lat=$parameters.latitude$&lng=$parameters.longitude$
3.下一轮对话:【结束对话】

【sys.取消】

1.对话回复内容:「已取消,请问你想去哪里?」
2.下一轮对话:【导航】

技能测试

如果开发者引用的是web资源,那么可以在DUI平台上进行在线测试。如果开发者使用的是本地资源,那么需要开发者在终端调用本地资源来进行测试。这里导航使用的是web资源,因此可以支持在线测试。
保存所有更改后,点击保存右侧的测试按钮进行测试。

技能发布与提交

技能开发完成后可以进行发布。发布后仍可以对技能进行修改。
Minion
发布的技能可以提交到商店,但是只允许提交新版本到商店。

测试商店中技能

技能通过审核后就可以出现在技能商店中。
技能商店中的技能支持两种操作:
1.获取 : 添加此技能到“已获取的技能”中
2.测试: 可以测试此技能