技能开发
技能开发分为如下4部分:
技能创建
对话定制
技能测试
技能发布
技能创建
新建技能
在技能页面选择“创建我的技能”,输入技能名称(技能名称只支持中文,字母和数字的组合)和技能描述(非必填项),选择技能分类。
这里以导航技能为例,演示如何完成技能开发。
创建任务
创建任务需要输入任务名称,命名【导航】。任务名称同样也支持中文,字母和数字的组合。
创建意图
任务创建完成后自动跳到意图界面,自动建立一个【自定义意图1】。修改【自定义意图1】名称为【导航】。
对话定制
步骤
对话定制步骤如下:
- 添加用户说法
- 说法标注
- 选择控件
- 资源调用
- 对话回复
添加用户说法
自定义用户可能的说法,按回车或者点击“确认”添加,也可通过“批量添加说法”,批量输入,一条说法一行。用户说法只支持中英用户在对话交互过程中,可能会使用到丰富多样的句式发起命令或提问,开发者需要尽可能地完善用户说法,按回车或者点击“确认”添加,也可通过“批量添加说法”,批量输入,一条说法一行。
以导航技能为例,用户可能会用到以下句式:
「导航到深圳大学」
「从上海火车站到东方明珠怎么走」
将上述语料中提取出的关键字替换为语义槽后,可以得到以下说法:
「导航去#终点名称# 」
「从#起点名称#到#终点名称#怎么走」
替换中使用到的##为语义槽引用符号,必须成对出现,中间填写语义槽名称。
为了方便开发者快速编写句式相似的用户说法,DUI支持在用户说法中加入正则符号“[]”“()”“|”的使用:
(): 必选符号,必须成对出现,不允许嵌套
[]: 可选符号,必须成对出现,不允许嵌套
|: 或(仅限于出现在括号内)
使用小括号,「(导航|出发)去#终点名称#」等同于「导航去#终点名称#」、「出发去#终点名称#」
使用中括号,「从#起点名称#到#终点名称#[怎么走|帮我导航]」等同于从「#起点名称#到#终点名称#」、「从#起点名称#到#终点名称#怎么走」、「从#起点名称#到#终点名称#帮我导航」
用户说法
除将语义槽直接写入说法的形式之外,DUI平台也支持添加例句,通过对例句进行说法标注、将语义槽绑定词库的形式来完善用户说法。
选择控件
DUI平台一共有五种控件:图文卡片,列表,音乐播放,内嵌网页和自定义控件。
在本例中,导航选用列表控件。选择此控件后会自动在意图列表中新建一个内置意图【sys.用户选择】。这个是选择控件的时候自动生成的,不需要用户建立。
DUI控件介绍
自定义控件开发说明
资源调用
语音交互过程通常需要查询数据资源来获取一些信息。如用户询问“今天天气怎么样”时就需要使用查询天气相关信息的数据资源,从而回答用户的问题,给予用户所需的信息。
DUI数据资源介绍
添加API资源
开发者可以通过在API资源地址栏中输入API地址来添加API资源。
例如在导航实例中,“POI查找”API支持的传入参数及功能:
1. 传入参数:destination,表示目的地
2. 返回数据:20个相关的地址数据,包括名称,详细地址,经纬度
在API地址框中输入API资源地址,完成添加操作。
配置API参数
每一个数据源都有自己的参数,需要查看当前使用资源的参数说明,才能完成资源参数配置。
API接口编写说明
对话回复
对话回复即系统在客户端对用户的请求,命令,询问等语音行为的回复内容或回复动作。如: 用户提出请求“导航去苏州”,系统在客户端对用户的对话回复就可以是:“正在为您导航”并且执行一个打开地图准备导航的动作。
对话回复详细介绍
在导航实例中,数据资源查询结果有一个参数count,表示搜索地址的数量:
1)当count = 1的时候,表示通过API刚好找到一个结果
2)当count > 1的时候,表示通过API找到多个结果
3)当count = 0 的时候,表示API没有找到结果
根据这三个不同的返回结果要设定不同的回复内容。回复内容需要手动输入,按enter键保存输入内容或者点击“+”完成添加。
找到一个结果:
输入回复内容:「已为您找到一个#目的地#,请问您要去这里么?」
下一轮对话:【导航】【sys.确认】和【sys.取消】
推荐语:「确认」,「取消」
备注:这里要添加两个内置意图:【sys.确认】和【sys.取消】
找到多个结果:
- 回复内容为:「找到多个#目的地#相关结果,请问您要去哪一个」
下一轮对话:【sys.用户选择】【导航】
推荐语:「第一页」,「上一页」,「下一页」,「第一个」,「取消」
没有找到结果:
- 输入回复内容:「没找到#目的地#相关结果,你可以换一个地址」
下一轮对话:【导航】
sys.用户选择
【sys.用户选择】意图可以用来定制用户在列表选择地址之后的对话和执行。在此意图的定制界面中,已经内置了常见的选择和翻页说法,开发者不需要重新标注,只需要添加对话回复内容。DUI平台已经为开发者预先设置好了导航的客户端动作,可以配合 sys.用户选择 意图进行使用,只需要在对话定制时进行配置即可。
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资源,因此可以支持在线测试。
保存所有更改后,点击保存右侧的测试按钮进行测试。
技能发布
详见:技能发布