语义协议
消息格式概览
交互返回协议为JSON格式,一个典型示例如下:
{
"semantic":[
{
"intent":"QUERY",
"slots":[
{
"name":"artist",
"value":"刘德华"
},
{
"name":"category",
"value":"电影"
}
]
}
],
"service":"video",
"sid":"cida41d16d5@dx000b11971633010002",
"text":"刘德华的电影",
"token":"a06aa183e9b44c8d8ca96ace4d64c10d@2"
}
应答消息字段定义
字段名称 | 字段类型 | 是否必须 | 说明 |
---|---|---|---|
text | String | 是 | 用户的输入,即用户说的话 |
service | String | 是 | 技能的全局唯一名称 |
sid | String | 是 | 语音id(云端生成) |
token | String | 是 | 本次标记(客户端生成) |
semantic | Object | 否 | 本次语义(包括历史继承过来的语义)结构化表示,各技能自定义 |
data | Object | 否 | 数据结构化表示,各技能自定义 |
answer | Object | 否 | 对结果内容的最简化文本/图片描述,各技能自定义 |
语义结构化表示
表示对用户文本的语义意图描述信息,通过该字段应用可以精确定位用户的意图,并获取具体的意图内容参数,在应用中实现对应的技能逻辑处理。
semantic是一个JSON数组,每个对象表示一种可能的语义理解方式,数组中每个成员对象说明如下。
字段名称 | 字段类型 | 是否必须 | 说明 |
---|---|---|---|
"semantic" | |||
intent | String | 是 | 技能中的意图 |
slots | Object | 是 | 参照后续不同技能的定义 |
slots是一个JSON数组,每个对象表示一个语义槽位信息,数组中的成员对象说明如下。
字段名称 | 字段类型 | 是否必须 | 说明 |
---|---|---|---|
"slot" | |||
name | String | 是 | 槽位名 |
value | String | 是 | 槽位值 |
结构化数据表示
除了返回对用户意图的描述,对于一些技能,也支持返回对用户文本的应答结果。该字段表示对应答结果的结构化描述信息,如果应用本身没有特定数据源,可以直接选择该结构化的结果进行解析和处理展现,无需处理语义信息。
字段名称 | 字段类型 | 是否必须 | 说明 |
---|---|---|---|
"data" | |||
header | String | 否 | 导语部分 |
result | Object | 否 | 结构化数据;如果没有查到数据,此字段不返回。参照后续不同技能的定义 |
简化图文结果表示
对于一些技能,支持直接返回一段文本应答结果,同时辅助一张图片和相关链接。应用可以无需解析和提取语义/结果的结构化数据信息,直接显示该字段的图文信息。同时用户可以选择通过开放平台编辑和上传/导入图文应答信息,快速自定义扩展应用交互。
字段名称 | 字段类型 | 是否必须 | 说明 |
---|---|---|---|
"answer" | |||
type | String | 否 | 显示的类型,通过这个类型,可以确定数据的返回内容和客户端的显示内容,默认值为 T 。 T:text数据 U:url数据 TU:text+url数据 IT:image+text数据 ITU:image+text+url数据 |
text | String | 是 | 通用的文字显示,属于text数据 |
imgUrl | String | 否 | 图片的链接地址,属于image数据 |
imgDesc | String | 否 | 图片的描述文字 |
url | String | 否 | url链接 |
urlDesc | String | 否 | url链接的描述文字 |
emotion | String | 否 | 回答的情绪,取值参见附录的情感标签对照表 |
更多细节请参考 AIUI 语义协议