# 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(否认)