対話モデルのスキーマ



対話モデルのスキーマ

対話モデルのリソースは、開発者コンソールスキルビルダーを使って作成した場合と同じ構造です。対話モデルは、ASK CLIコマンド対話モデルAPI操作を使って作成や変更を行うことができます。

関連トピック: Alexa Skills KitコマンドラインインターフェースとAlexaスキル管理APIの概要

対話モデル

フィールド 説明 必須
languageModel オブジェクト スキルの会話型プリミティブです
dialog オブジェクト ユーザーとのマルチターンのダイアログを行うためのルールです ×
prompts 配列 スキルに代わってユーザーに対してデータを要求したり、フィードバックを提供したりするための実行条件です ×

languageModel

フィールド 説明 必須
invocationName 文字列 スキルの呼び出し名です
intents 配列 インテントとそのスロットです
types 配列 カスタムスロットタイプです ×

languageModel_intents

フィールド 説明 必須
name 文字列 インテント名です
slots 配列 インテント内のスロットのリストです ×
samples 配列 インテントのサンプル発話です ×

slots

フィールド 説明 必須
name 文字列 スロット名です
type 文字列 スロットタイプです
samples 配列 スロットのサンプル発話です ×

types

フィールド 説明 必須
name 文字列 カスタムスロットタイプ名です
values 配列 スロットの代表的な値のリストです

value

フィールド 説明 必須
id 文字列 カスタムスロットタイプの値のIDです
name オブジェクト カスタムスロットタイプの値の記述です

values_name

フィールド 説明 必須
value 文字列 カスタムスロットタイプの値です

values_synonyms

フィールド 説明 必須
value 文字列 カスタムスロットタイプの値です
synonyms 配列 カスタムスロットタイプの値に入力されると考えられる同義語のリストです ×

dialog

フィールド 説明 必須
intents 配列 関連付けられたダイアログルールを持つインテントのリストです。
delegationStrategy 文字列 このスキルのダイアログが自動的にAlexaにデリゲートされるかどうかを指定します。ALWAYS(スキル全体で自動デリゲートがオン)またはSKILL_RESPONSE(スキル全体で自動デリゲートがオフ)にできます。この設定は、インテントレベルで上書きできます。  

dialog_intents

フィールド 説明 必須
name 文字列 ダイアログルールを持つインテントの名前です
delegationStrategy 文字列 このインテントのダイアログが自動的にAlexaにデリゲートされるかどうかを指定します。ALWAYS(このインテントで自動デリゲートがオン)またはSKILL_RESPONSE(インテントで自動デリゲートがオフ)にできます。このプロパティが存在しない場合、インテントはスキルレベルのdelegationStrategyを使用します。  
slots 配列 このインテント内でダイアログルールを持つスロットのリストです ×
confirmationRequired ブール値 インテントの確認が必要かどうかの記述です ×
prompts Map このインテントのプロンプトのコレクションです ×

dialog_intent_prompt_type

フィールド 説明 必須
confirmation 文字列 確認プロンプトIDを参照するdialog_intentsマップ内の列挙値です ×

dialog_slots

フィールド 説明 必須
name 文字列 ダイアログインテント内のスロットの名前です
type 文字列 ダイアログインテント内のスロットのタイプです
elicitationRequired ブール値 スロットの要求が必要かどうかの記述です ×
confirmationRequired ブール値 スロットの確認が必要かどうかの記述です ×
prompts Map このスロットのプロンプトのコレクションです ×
validations 配列 このスロットの検証ルールのリストです ×

dialog_slot_validations

フィールド 説明 必須
type 文字列 検証ルールのタイプを参照する列挙値です。検証ルールを参照してください
prompt 文字列 この検証ルールのプロンプトのセットを参照するIDです

validationオブジェクトには、利用可能な検証に固有の追加プロパティが含まれます。検証ルールを参照してください。

dialog_slot_prompt_type

フィールド 説明 必須
elicitation 文字列 要求プロンプトIDを参照するdialog_slotsマップ内の列挙値です ×
confirmation 文字列 確認プロンプトIDを参照するdialog_slotsマップ内の列挙値です ×

prompts

フィールド 説明 必須
id 文字列 プロンプトのIDです
variations 配列 プロンプトのバリエーションのリストです

variations

フィールド 説明 必須
type 列挙 以下のいずれかになります。 「PlainText」または「SSML」
value 文字列 プロンプトとしてAlexaが読み上げるテキストです

対話モデルのスキーマのサンプル

以下のスキーマサンプルには、3つの標準ビルトインインテント、2つのカスタムインテント、1つのダイアログモデル、1つのカスタムスロットタイプが含まれます。

{
  "interactionModel": {
    "languageModel": {
      "invocationName": "宇宙の豆知識",
      "intents": [
        {
          "name": "AMAZON.CancelIntent",
          "samples": []
        },
        {
          "name": "AMAZON.HelpIntent",
          "samples": []
        },
        {
          "name": "AMAZON.StopIntent",
          "samples": []
        },
        {
          "name": "GetNewFactIntent",
          "slots": [],
          "samples": [
            "豆知識を教えて",
            "豆知識を挙げて"
          ]
        },
        {
          "name": "GetTravelTime",
          "slots": [
            {
              "name": "DepartingPlanet",
              "type": "Planet",
              "samples": [
                "{DepartingPlanet}から出発します ",
                "{DepartingPlanet} ",
                "{DepartingPlanet}から{ArrivingPlanet}まで行きます "
              ]
            },
            {
              "name": "ArrivingPlanet",
              "type": "Planet",
              "samples": [
                "{ArrivingPlanet}に行きます",
                "{ArrivingPlanet} "
              ]
            }
          ],
          "samples": [
            "所要時間を計算して",
            "{DepartingPlanet}から{ArrivingPlanet}までの所要時間はどれくらいですか "
          ]
        }
      ],
      "types": [
        {
          "name": "Planet",
          "values": [
            {
              "name": {
                "value": "水星"
              }
            },
            {
              "name": {
                "value": "金星"
              }
            },
            {
              "name": {
                "value": "地球"
              }
            },
            {
              "name": {
                "value": "火星"
              }
            },
            {
              "name": {
                "value": "木星"
              }
            },
            {
              "name": {
                "value": "土星"
              }
            },
            {
              "name": {
                "value": "天王星"
              }
            },
            {
              "name": {
                "value": "海王星"
              }
            },
            {
              "name": {
                "value": "冥王星"
              }
            }
          ]
        }
      ]
    },
    "dialog": {
      "intents": [
        {
          "name": "GetTravelTime",
          "confirmationRequired": false,
          "prompts": {},
          "slots": [
            {
              "name": "DepartingPlanet",
              "type": "Planet",
              "confirmationRequired": false,
              "elicitationRequired": true,
              "prompts": {
                "elicitation": "Elicit.Intent-GetTravelTime.IntentSlot-DepartingPlanet"
              },
              "validations": [
                {
                  "type": "isNotInSet",
                  "prompt": "Slot.Validation.596358663326.282490667310.1526107495625",
                  "values": [
                    "太陽",
                    "おひさま",
                    "われわれの太陽"
                  ]
                },
                {
                  "type": "hasEntityResolutionMatch",
                  "prompt": "Slot.Validation.596358663326.282490667310.1366622834897"
                }
              ]
            },
            {
              "name": "ArrivingPlanet",
              "type": "Planet",
              "confirmationRequired": false,
              "elicitationRequired": true,
              "prompts": {
                "elicitation": "Elicit.Intent-GetTravelTime.IntentSlot-ArrivingPlanet"
              }
            }
          ]
        }
      ],
      "delegationStrategy": "ALWAYS"
    },
    "prompts": [
      {
        "id": "Elicit.Intent-GetTravelTime.IntentSlot-DepartingPlanet",
        "variations": [
          {
            "type": "PlainText",
            "value": "どの惑星から出発しますか?"
          }
        ]
      },
      {
        "id": "Elicit.Intent-GetTravelTime.IntentSlot-ArrivingPlanet",
        "variations": [
          {
            "type": "PlainText",
            "value": "どの惑星まで行きますか?"
          }
        ]
      },
      {
        "id": "Slot.Validation.596358663326.282490667310.1526107495625",
        "variations": [
          {
            "type": "PlainText",
            "value": "太陽についての質問にはお答えできません。惑星についてだけお答えできます。惑星の名前を言ってください。"
          },
          {
            "type": "PlainText",
            "value": "太陽は私たちの太陽系の中心ですが、惑星ではありません。惑星の名前を言ってください。"
          }
        ]
      },
      {
        "id": "Slot.Validation.596358663326.282490667310.1366622834897",
        "variations": [
          {
            "type": "PlainText",
            "value": "{DepartingPlanet}は惑星ではありません。太陽系の9個の惑星のどれかを言ってください。"
          },
          {
            "type": "PlainText",
            "value": "{DepartingPlanet}を太陽系の惑星の1つと認識していません。惑星の名前を言ってください。"
          }
        ]
      }
    ]
  }
}