IntentRequest 내에서 Custom Slot Type의 동의어 정보 얻기

Alexa Skill의 Builder BETA를 사용하면 다음과 같이 슬롯에 동의어(Synonyms)를 설정할 수 있다.
{
  "languageModel": {
    "types": [
      {
        "name": "TRAIN",
        "values": [
          {
            "id": "HANKYU",
            "name": {
              "value": "HANKYU",
              "synonyms": [
                "はんきゅう",
                "阪急",
                "阪急電車"
              ]
            }
          }
        ]
      }
    ]
    // 省略
  }
}

이것에 의해, TRAIN 슬롯에서 사용되는 はんきゅう 阪急 Utterances를 정의할 때, 사용자가 阪急電車 자세한 내용은 다음 공식으로 요약되어 있습니다.

슬롯 유형 값의 동의어와 ID 정의(엔티티 해석) | Custom Skills

그리고 WebHook을 Lambda등에서 처리할 때도 이 동의어의 정보를 IntentRequest로부터 취득할 수 있다고 공식적으로 해설 되고 있다.

위의 동의어 설정에 의한 IntentRequest에서는 다음과 같이 TRAIN 아래에 동의어 정보가 설정된 요청을 얻을 수 있다.
{
  "type": "IntentRequest",
  "requestId": "amzn1.echo-api.request.***********",
  "timestamp": "2017-12-28T09:16:19Z",
  "locale": "ja-JP",
  "intent": {
    "name": "TrainStatusIntent",
    "confirmationStatus": "NONE",
    "slots": {
      "Train": {
        "name": "Train",
        "value": "阪急",
        "resolutions": {
          "resolutionsPerAuthority": [
            {
              "authority": "amzn1.er-authority.echo-sdk.amzn1.ask.skill.********.TRAIN",
              "status": {
                "code": "ER_SUCCESS_MATCH"
              },
              "values": [
                {
                  "value": {
                    "name": "HANKYU",
                    "id": "HANKYU"
                  }
                }
              ]
            }
          ]
        },
        "confirmationStatus": "NONE"
      }
    }
  }
}

여기서 주의점으로서, 개발자 콘솔의 서비스 시뮬레이터에서는 はんきゅう 가 세트 되지 않고, 동의어의 정보는 취득할 수 없다.



잘 읽으면 공식적으로도 다음과 같이 주의가 있다.

개발자 포털의 테스트(Test) 페이지에 있는 서비스 시뮬레이터는 엔티티 확인을 지원하지 않습니다. 시뮬레이터에서 보낸 JSON 요청에는 새로운 resolutions 정보가 포함되어 있지 않습니다.

문서를 제대로 읽으면 알 수 있는 것이지만, Amazon Developer Forums에서 Synonyms의 ID를 얻을 수 없다고 말하는 사람이 있거나 하기 쉽다.

Alexa not sending slot ID in requests | Amazon Developer Forums

BETA판이므로 버그일까라고 생각해, 혼란스러울 것 같기 때문에 정리해 두었다.

참고


  • 알렉사의 커스텀 스킬 만들기 (2부)
  • 좋은 웹페이지 즐겨찾기