# Request 协议_v2.0
注意
技能协议v2.0当前只适用于AIUI私有技能
# 消息格式
技能后处理接收到的数据结构体如下:
{
"session":
{
"attributes":
{
"{{STRING}}": "{{STRING}}"
}
},
"context":{
},
"request":{
"type": "IntentRequest",
"sid": "{{STRING}}",
"query": {
"type": "{{STRING}}",
"original": "{{STRING}}"
},
"dialogState": "{{STRING}}",
"intents": [{
"name": "{{STRING}}",
"slots": {
"{{STRING}}": {
"name": "{{STRING}}",
"values": ["{{STRING}}"],
"confirmationStatus": "{{STRING}}"
}
},
"confirmationStatus": "{{STRING}}"
}],
}
}
# 参数说明
version
协议版本号,当前版本号为“2.0”。查看2.1协议
session
开发者存储临时信息,当技能退出时失效
context
设备端上传的参数和状态
request
经过 AIUI 解析后结构化的语义结果
# session 参数说明
- attributes 开发者用于存储临时键值对的区域
{
"session":{
"attributes":{
"fristName":"hello",
"lastName":"world"
}
}
}
# context 参数说明
Private
通过客户端 SDK 或者 WebAPI 上传的部分信息
参数名 | 参数意义 |
---|---|
Private.appid | 调用应用的 appid |
Private.scene | 调用应用的场景 |
Private.userparams | 客户端透传参数的 Base64编码 |
Private.gps.lng | gps 经度 |
Private.gps.lat | gps 纬度 |
{
"context":{
"Private":{
"appid":"5b3d76c2",
"scene":"main",
"userparams":"PG5hbWU+aGVsbG88L25hbWU+",
"gps":{
"lng":"117.27",
"lat":"31.86"
}
}
}
}
# request 参数说明
{
"type": "IntentRequest",
"sid": "{{STRING}}",
"query": {
"type": "{{STRING}}",
"original": "{{STRING}}"
},
"dialogState": "{{STRING}}",
"intents": [{
"name": "{{STRING}}",
"slots": {
"{{STRING}}": {
"name": "{{STRING}}",
"value": "{{STRING}}",
"confirmationStatus": "{{STRING}}"
}
},
"confirmationStatus": "{{STRING}}"
}],
}
参数名 | 参数意义 |
---|---|
type | 请求类型,目前取值仅有 IntentRequest |
sid | 本次请求的唯一标示,用于查日志 |
query | 用户请求 |
query.type | 用户请求类型,目前取值仅有 text |
query.original | 当query.type取值为 text 时,此时为用户语音的识别结果 |
dialogState | 当前跳槽对话状态,取值为 STARTED(开始)、 IN_PROGRESS(进行中)、 COMPLETED(已完成开发者在界面上配置的所有环节) |
intents | AIUI 理解的语义请求,目前该数组的大小为1 |
intents.name | 意图名称 |
intents.slots | 意图中的槽位信息 |
intents.confirmationStatus | 意图确认状态,取值为 NONE(未确认)、CONFIRMED(确认) DENIED(否认) |
intents.slots.*.name | 槽位名,与*号内容相同 |
intents.slots.*.value | 槽位值 |
intents.slots.*.confirmationStatus | 槽位确认状态,取值为 NONE(未确认)、CONFIRMED(确认) DENIED(否认) |