# Response 协议_v2.0
# 消息格式
技能后处理返回的数据结构体如下:
{
"version": "{{STRING}}",
"session": {
"sessionIsEnd": "{{STRING}}",
"attributes":
{
"{{STRING}}": "{{STRING}}"
},
},
"response":{
"outputSpeech" : {
"type" : "{{STRING}}",
"text" : "{{STRING}}",
},
"shouldEndSession" : {{BOOLEAN}},
"directives": [{
"type": "{{STRING}}",
...
}],
"payload":{
"data":{{OBJECT}}
}
}
}
# 参数说明
version
协议版本号,当前版本号为“2.0”。。查看2.1协议
session
开发者存储临时信息,当技能退出时失效
response
经过 AIUI 解析后结构化的语义结果
# session 参数说明
- attributes 开发者用于存储临时键值对的区域
{
"session":{
"attributes":{
"fristName":"hello",
"lastName":"world"
}
}
}
# response 参数说明
参数名 | 参数意义 |
---|---|
outputSpeech | 本次返回结果中需要播报的语音信息 |
outputSpeech.type | TTS 类型,目前取值仅为 PlainText(纯文本) |
outputSpeech.text | 当 type 取值为PlainText时,本字段表述需要 TTS 播报的文本 |
shouldEndSession | 是否期待用户的主动输入,取值为 false 时,如果设备端为非触控设备(如音箱)应当主动开启麦克风拾音功能。 |
directives | 本次返回结果包含的指令,目前仅存在填槽对话指令 |
payload.data | 开发者附加的数据 |
# 填槽对话指令
directive下的填槽对话指令分为四种,分别是Dialog.ElicitSlot, Dialog.ConfirmSlot,Dialog.ConfirmIntent,Dialog.Delegate
{
"type": "{{STRING}}",
"slotToElicit": "{{STRING}}",// 仅 type=Dialog.ElicitSlot 时存在
"slotToConfirm": "{{STRING}}",// 仅 type=Dialog.ConfirmSlot 时存在
"updatedIntent": {
"name": "{{STRING}}",
"confirmationStatus": "{{STRING}}",
"slots": {
"{{STRING}}": {
"name": "{{STRING}}",
"value": ["{{STRING}}"],
"confirmationStatus": "{{STRING}}"
}
}
}
}
参数名 | 参数意义 |
---|---|
type | 指令名,取值范围是Dialog.ElicitSlot(槽追问), Dialog.ConfirmSlot(槽确认),Dialog.ConfirmIntent(意图确认),Dialog.Delegate(填槽对话托管) |
slotToElicit | 需要追问的槽名 |
slotToConfirm | 需要确认的槽名 |
updatedIntent | 技能发送给技能后处理的意图结果,当开发者认为当前语境下有更合理的意图理解时,应当修改updatedIntent |
updatedIntent. confirmationStatus | 意图确认状态 |
updatedIntent.* | 槽信息 |
updatedIntent.*.name | 槽名 |
updatedIntent.*. value | 槽值 |
updatedIntent.*. confirmationStatus | 槽确认状态 |