?
サポート

対話モデルのスキーマ

対話モデルスキーマのオブジェクトは、Alexaスキルのコンフィギュレーションの「対話モデル」セクションに入力された情報です。

以下の例では、Alexaスキルのサンプル対話モデルをJSONで表したものです。この例では、インテントと2つの異なるスロットタイプがJSON形式で記述されています。

  • LIST_OF_SIGNSタイプは、値のリストを含む、単純なスロットタイプの説明を示しています。
{
   "types":[
      {
         "name":"LIST_OF_SIGNS",
         "values":[
            {
               "name":{
                  "value":"Aries"
               }
            },
            {
               "name":{
                  "value":"Taurus"
               }
            }
         ]
      }
   ],
   "intents":[
      {
         "intent":"GetHoroscope",
         "slots":[
            {
               "name":"Sign",
               "type":"LIST_OF_SIGNS"
            },
            {
               "name":"Date",
               "type":"AMAZON.DATE"
            }
         ],
         "samples":[
            "what is the horoscope for {Sign}",
            "what will the horoscope for {Sign} be on {Date}",
            "get me my horoscope",
            "{Sign}"
         ]
      }
   ]
}

typeオブジェクト

フィールド 説明 必須
name スロットタイプの名前。英字のみを指定できます。使用できる特殊文字は、アンダースコア(_)のみです。 string
values スロットタイプの値を定義するオブジェクトの配列。 array
values[].name この値の名前を表すオブジェクト。このオブジェクトはエンティティのテキスト値を定義します。 object
values[].name.value エンティティに関連付けられている基準値を含む文字列です。 string

intentオブジェクト

インテントオブジェクトです。

フィールド 意味

"intents":[]

スキルに送信できるインテントのリストを指定する配列。

"intent":"string"

インテントの名前を指定する文字列。

インテントの名前には、英字のみ(大文字小文字の区別なし)を指定できます。数字、スペース特殊文字は使用できません。インテントの名前は、スキーマ内のどのスロット名とも重複しないようにしてください。

ビルトインインテントAMAZONネームスペースを使用するため、ピリオドが含まれます。たとえば、AMAZON.HelpIntent.この表記は、AMAZONネームスペースを指定する場合にのみ使用できます。他のインテント名ではピリオドを使用できません。

たとえば、GetZodiacHoroscopeIntentは有効ですが、Get Zodiac Horoscope IntentZodiac.GetHoroscopeIntentGet2015HoroscopeIntentはいずれも無効です。

"slots":[]

インテント内のスロットのリストを指定する配列。

各スロットは、次の2つの項目で構成されます: name および type

スロット名とインテント名は、スキーマのすべてのインテントにおいて重複して使用できません。たとえば、1つのインテントに指定した名前は、スキーマ内のどのスロットにも使用することができません。また、インテント名とスロット名では大文字と小文字が区別されないため、インテント名「ABC」とスロット名「abc」は共存できません。

同じスロット名は、同じ型で同じエンティティを表している場合にのみ、複数のインテントで使用できます。たとえば、「Sign」というスロットは、星占いスキルの複数のインテントで使用できますが、使用する場合は必ず、星座を表し、同じカスタムスロットタイプを持つ必要があります。

このプロパティは、インテントにスロットが含まれる場合にのみ必須です。

スロットをビルトインインテントに対して宣言することはできません。

"name":"string"

個々のスロットの名前を指定する文字列。- スロットの名前には、英字のみ(大文字小文字の区別なし)を指定できます。数字、スペース、特殊文字を使用することはできません。- たとえば、ZodiacSignは有効ですが、Zodiac Sign12-Month\_ZodiacSignはいずれも無効です。

"type":"string"

スロットのタイプを指定する文字列。スロットタイプは、Alexaサービスが、スキルサービスに値を送信する前にスロットデータを処理する方法を示します。カスタムスロットタイプを作成するか、多数用意されている標準スロットタイプから1つを選択して使用することができます。