UI事件及数据定义
用户输入
用户输入文本
描述:用来显示用户(人)的输入文本
触发事件及数据:
event | data | description |
---|---|---|
context.input.text |
半双工模式: {"eof":1 //0标记识别未结束,1标记识别结束,"recordId":"714cd559f5ff083c68590567d12afb18","text":"今天天气","sessionId":"45ec324f0470eb5602714ae889214323","pinyin":"jin tian tian qi"}
全双工模式: {"recordId":"eaa61aae99f4ed1e44b585c5c58e62b9","text":"今天天气","eof":1//0标记识别未结束,1标记识别结束} |
显示输入文本 实时反馈结果示例: {"eof":0,"var":"你好"} {"eof":0,"text":"你好"} {"eof":0,"var":"我"} {"eof":0,"var":"我要"} {"eof":0,"var":"我要去"} {"eof":0,"var":"我要去国家"} {"eof":0,"var":"我要去国家大"} {"eof":0,"var":"我要去国家大剧院"} {"eof":0,"text":"我要去国家大剧院"} {"eof":1,"text":""} |
UI事件绑定:暂无
语音状态卡
描述:直观地反馈语音交互中各个阶段的状态
触发事件及数据:
event | @deprecated | data | description |
---|---|---|---|
avatar.silence | avatar.silence | 无 | 显示静止状态 |
avatar.listening | avatar.listening | 示例: { "volume":50, //音量大小0-100} |
显示倾听状态,每100ms反馈一次该事件 |
avatar.understanding | avatar.understanding | 无 | 显示理解状态 |
avatar.speaking | avatar.speaking | 无 | 显示播报状态 |
avatar.standby | avatar.standby | 无 | 显示暂停状态 |
UI事件绑定:
UI operation | event | data | description |
---|---|---|---|
click avatar | ui.avatar.click | - | 点击avatar图标 |
其它
对话状态
描述:用来告知对话开始和结束
触发事件及数据:
event | data | description |
---|---|---|
sys.dialog.start | - | 对话开始时发出 |
sys.dialog.end | {reason:"error",//normal-对话正常结束;interrupt-对话被打断;error-对话发生错误; errId:4, errMsg:"asr null", skillId:"100001246" } |
对话结束时发出 |
sys.dialog.error | { serrId:4, serrMsg:"asr null" }) |
对话中发生的错误 |
sys.dialog.continue | - | 对话恢复时发出 |
系统输出
NLG输出
描述:用来显示NLG(Natural language generation)的内容
触发事件及数据:
event | data | description |
---|---|---|
context.output.text | 示例:{ "text": "为您找到10个相关地点,请问要去哪一个?"} |
用于播报的文本内容 |
文本控件类
描述:用来显示文本卡片
触发事件及数据:
event | data | description |
---|---|---|
context.widget.text | 具体数据见表格下方 | 用于显示输出文本 |
具体数据:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
type | Y | string | 描述控件类型, 取值为text |
name | Y | string | 描述控件的名称, 可编辑,默认为default |
intentName | Y | string | 描述所属意图名 |
text | Y | string | 输出文本 |
recommendations | N | json array | 用于显示推荐气泡的数据 |
extra | N | kv对 | 自定义参数,由webhook或者localhook透传出来,作为附加信息使用 |
示例:
{
"type":"text",
"name":"default",
"intentName":"导航",
"text": "4个地点"
}
列表控件类
描述:展示多条候选结果
触发事件及数据:
event | data | description |
---|---|---|
context.widget.list | 具体数据见表格下方 | 显示列表项,每页的索引从1开始 |
具体数据:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
type | Y | string | 描述控件类型, 取值为list |
name | Y | string | 描述控件的名称, 可编辑,默认为default |
intentName | Y | string | 描述所属意图名 |
totalPages | Y | int | 页面总数 |
itemsPerPage | Y | int | 每页显示条目数 |
currentPage | Y | int | 当前处于的页面数 |
content | Y | json array | 列表项数据,具体见表格下方 |
recommendations | N | json array | 用于显示推荐气泡的数据 |
extra | N | kv对 | 自定义参数,由webhook或者localhook透传出来,作为附加信息使用 |
列表项数据每一项数据格式为:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
title | Y | string | 标题 |
subTitle | N | string | 副标题 |
imageUrl | N | string | 图片地址 |
linkUrl | N | string | 链接地址,点击该项可以进行跳转 |
label | N | string | 标签数据 |
extra | N | kv对 | 自定义参数,由webhook或者localhook透传出来,作为附加信息使用 |
示例:
{
"type" : "list",
"name":"default",
"intentName":"导航",
"content": [{
"title": "金鸡湖摩天轮",
"subTitle": "观枫街1号",
"imageUrl": "https://img.api.aispeech.com/s/3724150899028.png",
"linkUrl": "https://map.amap.com/m/7867766776.html",
"label": "3.6km",
"extra": {
"latitude": 120.733062,
"longitude": 31.26473,
"tel": "0512-66666666"
}
},
{
"title": "金鸡湖李公堤",
"subTitle": "金鸡湖大道888号",
"imageUrl": "https://img.api.aispeech.com/s/3724150899030.png",
"linkUrl": "https://map.amap.com/m/78979878979.html",
"label": "2.6km",
"extra": {
"latitude": 124.783483,
"longitude": 37.324893,
"tel": "0512-88888888"
}
}
],
"totalPages": 5,
"itemsPerPage": 5,
"currentPage": 2,
"recommendations": ["第3个", "下一页"]",
"extra": {
"source": "amap",
"apiVersion": "0.3.2"
}
}
UI事件绑定:
UI operation | event | data | description |
---|---|---|---|
click item | list.item.select | 示例:{ "index": 3 //第三个被选中} |
列表项被选中,index从1开始 |
page select | list.page.switch | 示例:{ "pageNumber": 3 //跳转到第三页} |
页面被切换到第x页,pageNumber从1开始,可以是滑动/点选等方式切换到相应页面 |
click event | recommendation.item.select | 示例:{ "text": "下一页"} |
推荐气泡被点中 |
图文卡片控件类(ContentWidget)
描述:图文并茂展示内容,如wikipedia
触发事件及数据:
event | data | description |
---|---|---|
context.widget.content | 具体数据见表格下方 | 参数都为可选 |
具体数据:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
type | Y | string | 描述控件类型,取值为content |
name | Y | string | 描述控件的名称,可编辑,默认为default |
intentName | Y | string | 描述所属意图名 |
title | Y | string | 标题 |
subTitle | N | string | 副标题 |
imageUrl | N | string | 图片资源地址 |
label | N | string | 标签数据,建议以 "," 作为分隔 |
linkUrl | N | string | 跳转地址 |
buttons | N | json array | 按钮数据项,作为按钮上的显示文案以及回传数据 |
recommendations | N | json array | 用于显示推荐气泡的数据 |
extra | N | kv对 | 自定义参数,由webhook或者localhook透传出来,作为附加信息使用 |
示例:
{
"type" : "content",
"name":"default",
"intentName":"名人查询",
"title": "刘德华",
"subTitle": "刘德华,BBS,MH,JP,香港知名演员、歌手及电影制作人,1990年代获封香港乐坛“四大天王”之一,也是吉尼斯世界纪录大全中获奖最多的香港歌手;电影方面他获得三次香港电影金像奖最佳男主角和两次金马奖最佳男主角,至今参演超过140部电影。 ",
"imageUrl": "https://www.google.co.jp/url?sa=i&rct=j&q=&esrc=s&source=imgres&cd=&cad=rja&uact=8&ved=0ahUKEwiP3ef27KjTAhUDJZQKHYj3CgUQjRwIBw&url=http%3A%2F%2Fwww.jianshu.com%2Fp%2Fda5c8159ae91&psig=AFQjCNE48KOZLoBc26DtlngBTPYa2dtC6A&ust=1492427795412275",
"label": "艺人, 香港, 歌手",
"linkUrl": "https://zh.wikipedia.org/zh-hans/%E5%8A%89%E5%BE%B7%E8%8F%AF",
"buttons": [{
"name": "听刘德华的歌"
}, {
"name": "看刘德华的电影"
}],
"extra": {
"source": "wikipedia",
"apiVersion": "0.3.2"
},
"recommendations": ["刘德华的老婆是谁?"]
}
UI事件绑定:
UI operation | event | data | description |
---|---|---|---|
click | content.card.wiki.click | - | 点击卡片后,跳转时发出 |
click | content.card.button.click | 示例:{ "text": "听刘德华的歌"} |
点击对应的button时发出,text使用button显示的文本内容 |
click event | recommendation.item.select | 示例:{ "text": "刘德华的老婆是谁?"} |
推荐气泡被点中 |
内嵌网页控件类(WebWidget)
描述:展示富文本内容,如:天气/股票等
触发事件及数据:
event | data | description |
---|---|---|
context.widget.web | 具体数据见表格下方 | web卡片允许通过scheme进行扩展 |
具体数据:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
type | Y | string | 描述控件类型, 取值为web |
name | Y | string | 描述控件的名称, 可编辑,默认为default |
intentName | Y | string | 描述所属意图名 |
url | Y | string | url地址 |
recommendations | N | json array | 用于显示推荐气泡的数据 |
extra | N | kv对 | 自定义参数,由webhook或者localhook透传出来,作为附加信息使用 |
示例:
{
"type" : "web",
"name":"default",
"intentName":"天气查询",
"url": "https://172.16.20.131/h5-weather",
"recommendations": ["上海的天气呢?","威海的天气呢?"],
"extra": {
"width": 400,
"height": 800
}
}
UI事件绑定:
UI operation | event | data | description |
---|---|---|---|
click event | recommendation.item.select | 示例:{ "text": "上海的天气呢?"} |
推荐气泡被点中 |
媒体控件类(MediaWidget)
描述:用于展示多媒体信息
触发事件及数据:
event | data | description |
---|---|---|
context.widget.media | 具体数据见表格下方 | 1.显示多媒体卡片内容 2.内建媒体卡片对linkUrl源为mp3/ogg/wav格式的资源的直接播放支持 3.web则进行跳转播放 |
具体数据:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
type | Y | string | 描述控件类型, 取值为media |
name | Y | string | 描述控件的名称, 可编辑,默认为default |
intentName | Y | string | 描述所属意图名 |
totalPages | Y | int | 页面总数 |
itemsPerPage | Y | int | 每页显示条目数 |
currentPage | Y | int | 当前处于的页面数 |
content | Y | json array | 列表项数据,具体见表格下方 |
recommendations | N | json array | 用于显示推荐气泡的数据 |
extra | N | kv对 | 自定义参数,由webhook或者localhook透传出来,作为附加信息使用 |
列表项数据每一项数据格式为:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
title | Y | string | 标题 |
subTitle | N | string | 副标题 |
imageUrl | N | string | 图片数据地址 |
linkUrl | N | string | 链接地址,点击该项可以进行跳转 |
label | N | string | 标签数据 |
parameters | N | kv对 | 自定义参数,由webhook或者localhook透传出来,作为附加信息使用 |
示例:
{
"type" : "media",
"name":"default",
"intentName":"音乐搜索",
"content": [{
"title": "喜欢你",
"subTitle": "beyond",
"imageUrl": "https://img1.doubanio.com/lpic/s26702528.jpg",
"label": "音乐专辑",
"linkUrl": "https://h.xiami.com/#!/player",
"extra": {
"resType": "mp3"
}
}],
"totalPages": 1,
"itemsPerPage": 3,
"currentPage": 1,
"recommendations": ["下一首"]
}
UI事件绑定:
UI operation | event | data | description |
---|---|---|---|
click event | recommendation.item.select | 示例:{ "text": "下一首"} |
推荐气泡被点中 |
自定义控件类(CustomWidget)
描述:用于自定义的控件扩展
触发事件及数据:
event | data | description |
---|---|---|
context.widget.custom | 具体数据见表格下方 | 自定义控件对于数据部分有很大的自由度,与UI展示层的数据匹配由开发者自己保证 |
具体数据:
属性 | 必须(Y/N) | 类型 | 说明 |
---|---|---|---|
type | Y | string | 描述控件类型, 取值为custom |
name | Y | string | 描述控件的名称, 可编辑,默认为default |
intentName | Y | string | 描述所属意图名 |
其他数据不做限制 |
示例:
{
"type" : "custom",
"name":"custom_widget_1",
"intentName":"自定义意图1",
"foo":"bar"
}
UI事件绑定:暂无