絖綛 N@i.jp  昨日:00022023
 今日:00002394
 総計:00064468
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:10/01 12:07


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

Alexaの緊急連絡スキルを作る(5)

対話モデルを作成します


8. 緊急連絡スキルの対話モデルを作る

 Lambdaが作成できたので、amazon開発者コンソールに戻って緊急連絡スキル(フロントエンド)を作って行きます。
 先ず、呼び出し名を少し変えたいと思います。理由は「緊急連絡」では一般的な用語すぎて、呼び出し方によっては何処ぞの緊急連絡電話番号の検索をしてしまったり、誤動作することが多かったからです。
 そこで呼び出し名が少し長くなってしまいますが、「緊急連絡」から「ウチの緊急連絡」に変更しました。

 それでは対話モデルを作ります。今回はダイアログモデルにするため、スキルビルダーを使いました。緊急連絡という性質上、とっさの場合に「アレクサ、ウチの緊急連絡で連絡してとメールを送信」などと淀みなく話せるとは限らないからです。そのため、「アレクサ、ウチの緊急連絡でメール」→「メールで送るメッセージは何ですか?」→「連絡」と言う具合に、複数回の対話もできるようにした方が良いですよね。このような対話モデルのことをダイアログモデルと言い、ダイアログモデルはスキルビルダーでしか作成できないのです。

 対話モデルで「スキルビルダーを起動する」をクリックしてスキルビルダーを起動します。この後、スキルビルダーを駆使した対話モデルの作り方を説明すると長くなりますので、スキルビルダーの使い方については他に沢山ある解説記事やホームページを探してみてください(スミマセン、手抜きです^^;。とは言え、結構分かりやすい作りなので、あちこちいじっている間に何となく分かってくるんじゃないかと思います)。

 と言うことで、今回は既に作成した対話モデルを使ってしまいます。「Code Editor」をクリックします。

 コードエディタが起動すると、このような画面になりますので、以下をエディタ画面にコピペするか、日本語コードUTF8、拡張子.jsonでファイルに保存して、そのファイルを「Drag and drop your .json file」と書かれている枠にドラッグドロップしてください。

{
  "languageModel": {
    "types": [
      {
        "name": "CallType",
        "values": [
          {
            "id": null,
            "name": {
              "value": "呼んで",
              "synonyms": [
                "呼べ",
                "呼び出して",
                "呼び出せ"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "お願い",
              "synonyms": [
                "お願いして",
                "要請"
              ]
            }
          }
        ]
      },
      {
        "name": "Contact",
        "values": [
          {
            "id": null,
            "name": {
              "value": "連絡",
              "synonyms": [
                "連絡して",
                "連絡をとって",
                "連絡とって",
                "連絡しろ",
                "連絡とれ",
                "連絡をとれ",
                "連絡せよ",
                "連絡しなさい",
                "連絡とりなさい",
                "連絡をしなさい",
                "連絡をとりなさい"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "伝えて",
              "synonyms": [
                "伝えろ",
                "伝えなさい"
              ]
            }
          }
        ]
      },
      {
        "name": "PhoneCallType",
        "values": [
          {
            "id": null,
            "name": {
              "value": "電話",
              "synonyms": [
                "電話かけて",
                "電話をかけて",
                "電話をかけろ",
                "コール",
                "コールして",
                "コールしろ",
                "電話しろ",
                "電話せよ"
              ]
            }
          }
        ]
      },
      {
        "name": "Request",
        "values": [
          {
            "id": null,
            "name": {
              "value": "連絡",
              "synonyms": [
                "連絡して",
                "連絡してください",
                "連絡ください",
                "連絡をください"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "帰宅",
              "synonyms": [
                "帰宅して",
                "帰って",
                "帰ってきて"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "戻って",
              "synonyms": [
                "戻ってきて"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "助け",
              "synonyms": [
                "助けて",
                "ヘルプ"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "電話して",
              "synonyms": [
                "電話してください",
                "電話をしてください",
                "電話ください",
                "電話をください"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "メールして",
              "synonyms": [
                "メールください",
                "メールをください",
                "メールしてください",
                "メールをしてください"
              ]
            }
          }
        ]
      },
      {
        "name": "SendMailType",
        "values": [
          {
            "id": null,
            "name": {
              "value": "メール送信",
              "synonyms": [
                "メールを送信",
                "メールで送信",
                "メールを送信せよ",
                "メールで送信せよ",
                "メールを送信しろ",
                "電子メール送信",
                "電子メールを送信",
                "電子メールで送信",
                "電子メールを送信しろ",
                "電子メールを送信せよ"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "メールを送る",
              "synonyms": [
                "メールを送って",
                "メールを送れ",
                "電子メールを送る",
                "電子メールを送って",
                "電子メールを送れ"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "送信",
              "synonyms": [
                "送信して",
                "送信しろ",
                "送る",
                "送って",
                "送れ",
                "送信せよ",
                "送信しなさい"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "メール",
              "synonyms": [
                "メールする",
                "メールしなさい",
                "メールしろ",
                "メールせよ"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "メールで送る",
              "synonyms": [
                "メールで送って",
                "メールで送れ",
                "電子メールで送る",
                "電子メールで送って",
                "電子メールで送れ"
              ]
            }
          }
        ]
      },
      {
        "name": "WhatType",
        "values": [
          {
            "id": null,
            "name": {
              "value": "何",
              "synonyms": [
                "なに",
                "何ですか"
              ]
            }
          },
          {
            "id": null,
            "name": {
              "value": "何処",
              "synonyms": [
                "どこ",
                "何処ですか"
              ]
            }
          }
        ]
      }
    ],
    "intents": [
      {
        "name": "AMAZON.CancelIntent",
        "samples": []
      },
      {
        "name": "AMAZON.HelpIntent",
        "samples": []
      },
      {
        "name": "AMAZON.StopIntent",
        "samples": []
      },
      {
        "name": "PhoneCall",
        "samples": [
          "電話",
          "電話 かけて",
          "電話 して",
          "電話 を かけて",
          "{Message} と {Phone}",
          "{Message} を {Phone}",
          "電話 {Message}",
          "電話 で {Message}",
          "電話 して {Message}",
          "電話 かけて {Message}",
          "電話 を かけて {Message}",
          "電話 かけて {Message} と {Contact}",
          "電話 を かけて {Message} と {Contact}",
          "電話 で {Message} を {Call}",
          "電話 して {Message} を {Call}",
          "電話 かけて {Message} を {Call}",
          "電話 を かけて {Message} を {Call}"
        ],
        "slots": [
          {
            "name": "Message",
            "type": "Request",
            "samples": [
              "{Message}",
              "{Message} と {Phone}",
              "{Message} を {Phone}",
              "{Message} と {Contact}",
              "{Message} を {Contact}",
              "{Message} を {Call}"
            ]
          },
          {
            "name": "Phone",
            "type": "PhoneCallType"
          },
          {
            "name": "Contact",
            "type": "Contact"
          },
          {
            "name": "Call",
            "type": "CallType"
          }
        ]
      },
      {
        "name": "SayMailAddress",
        "samples": [
          "連絡先は {What}",
          "連絡先を教えて"
        ],
        "slots": [
          {
            "name": "What",
            "type": "WhatType"
          }
        ]
      },
      {
        "name": "SendEmergencyMail",
        "samples": [
          "メール",
          "メール して",
          "メール {Message}",
          "メール で {Message}",
          "メール で {Message} を {Call}",
          "{Message} と {Mail}",
          "{Message} を {Mail}",
          "{Message} と {Contact}",
          "{Message} を {Contact}",
          "{Message} を {Call}"
        ],
        "slots": [
          {
            "name": "Message",
            "type": "Request",
            "samples": [
              "{Message}",
              "{Message} と {Mail}",
              "{Message} を {Mail}",
              "{Message} と {Contact}",
              "{Message} を {Contact}",
              "{Message} を {Call}"
            ]
          },
          {
            "name": "Mail",
            "type": "SendMailType"
          },
          {
            "name": "Contact",
            "type": "Contact"
          },
          {
            "name": "Call",
            "type": "CallType"
          }
        ]
      },
      {
        "name": "TestCall",
        "samples": [
          "テスト電話",
          "電話 を テスト",
          "電話 を 試して",
          "電話 の テスト",
          "テスト電話 を かけて",
          "緊急連絡電話 を テスト",
          "緊急連絡電話 を 試して",
          "緊急連絡電話 の テスト"
        ],
        "slots": []
      },
      {
        "name": "TestMail",
        "samples": [
          "テストメール",
          "メール を テスト",
          "メール を 試して",
          "メール の テスト",
          "テストメール を 送信",
          "メール を テスト送信",
          "緊急連絡メール を テスト",
          "緊急連絡メール を 試して",
          "緊急連絡メール の テスト"
        ],
        "slots": []
      }
    ],
    "invocationName": "ウチの緊急連絡"
  },
  "prompts": [
    {
      "id": "Confirm.Intent-PhoneCall",
      "variations": [
        {
          "type": "PlainText",
          "value": "{Message} と電話します。よろしいですか?"
        }
      ]
    },
    {
      "id": "Elicit.Intent-PhoneCall.IntentSlot-Message",
      "variations": [
        {
          "type": "PlainText",
          "value": "電話する緊急メッセージを、「連絡して」、「メールして」、「帰ってきて」などと指示してください。"
        }
      ]
    },
    {
      "id": "Confirm.Intent-SendEmergencyMail",
      "variations": [
        {
          "type": "PlainText",
          "value": "{Message} とメールを送ります。よろしいですか?"
        }
      ]
    },
    {
      "id": "Elicit.Intent-SendEmergencyMail.IntentSlot-Message",
      "variations": [
        {
          "type": "PlainText",
          "value": "メールする緊急メッセージを、「連絡して」、「電話して」、「帰ってきて」などと指示してください。"
        }
      ]
    }
  ],
  "dialog": {
    "intents": [
      {
        "name": "PhoneCall",
        "confirmationRequired": true,
        "prompts": {
          "confirmation": "Confirm.Intent-PhoneCall"
        },
        "slots": [
          {
            "name": "Message",
            "type": "Request",
            "elicitationRequired": true,
            "confirmationRequired": false,
            "prompts": {
              "elicitation": "Elicit.Intent-PhoneCall.IntentSlot-Message"
            }
          },
          {
            "name": "Phone",
            "type": "PhoneCallType",
            "elicitationRequired": false,
            "confirmationRequired": false,
            "prompts": {}
          },
          {
            "name": "Contact",
            "type": "Contact",
            "elicitationRequired": false,
            "confirmationRequired": false,
            "prompts": {}
          },
          {
            "name": "Call",
            "type": "CallType",
            "elicitationRequired": false,
            "confirmationRequired": false,
            "prompts": {}
          }
        ]
      },
      {
        "name": "SendEmergencyMail",
        "confirmationRequired": true,
        "prompts": {
          "confirmation": "Confirm.Intent-SendEmergencyMail"
        },
        "slots": [
          {
            "name": "Message",
            "type": "Request",
            "elicitationRequired": true,
            "confirmationRequired": false,
            "prompts": {
              "elicitation": "Elicit.Intent-SendEmergencyMail.IntentSlot-Message"
            }
          },
          {
            "name": "Mail",
            "type": "SendMailType",
            "elicitationRequired": false,
            "confirmationRequired": false,
            "prompts": {}
          },
          {
            "name": "Contact",
            "type": "Contact",
            "elicitationRequired": false,
            "confirmationRequired": false,
            "prompts": {}
          },
          {
            "name": "Call",
            "type": "CallType",
            "elicitationRequired": false,
            "confirmationRequired": false,
            "prompts": {}
          }
        ]
      }
    ]
  }
}

 エディタ画面にコードが反映されたら右上の「Apply Changes」ボタンをクリックします。Dashboardに戻り、インテント(Intents)、スロットタイプ(Slot Types)に以下のように反映されていればOK。

 「Save Model」で対話モデルを保存し( 法◆Build Model」で対話モデルをビルド(◆砲靴泙后ビルドには数分程かかりますが、完了するまでじっと待ちます。ビルド中にインテントやスロットタイプを編集してしまうと、タイミングによっては内容が消えてしまったりすることがあるようですので、注意してください。ビルドが終わったら「Configuration」()をクリックしてスキルビルダーを終了します。

[続く]


< 過去の記事 [ 2月の プログラミング リスト ] 新しい記事 >

2018 calendar
2月
123
45678910
11121314151617
18192021222324
25262728


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.