チュートリアル: Alexa Conversationsのダイアログにアノテーションを付ける方法



チュートリアル: Alexa Conversationsのダイアログにアノテーションを付ける方法

このチュートリアルでは、Alexa Conversationsを使用するWeatherスキルの簡単なダイアログにアノテーションを付ける方法について説明します。アノテーションを付けるのは、次のダイアログです。

ユーザー: 天気を教えて。
Alexa: どの都市のですか?
ユーザー: 神戸。
Alexa: 神戸の気温は二十一度です。

実際のスキルでは通常、複数のダイアログにアノテーションを付けて、ユーザーとスキルが対話するさまざまな方法を示します。このチュートリアルでは、ダイアログのアノテーションについてのみ説明します。バックエンドのスキルコードについては説明しません。

開発を始める

Alexa Conversationsを使用して開発を開始するには、Pet Matchスキルの開発チュートリアルの手順を実行する、ピザ注文リファレンススキルのコードをダウンロードする、Alexa Conversationsのスキル設定とバックエンドスキルコードを含むAlexa-hostedサンプルスキルテンプレートを使用する、といった方法があります。

Alexa Conversationsスキルのダイアログにアノテーションを付ける手順

ダイアログにアノテーションを付けるには、次の手順を実行します。

  1. ダイアログを作成します
  2. 結果を返すためのカスタムスロットタイプを作成します
  3. 最初のユーザーターンにアノテーションを付けます
  4. 情報を提供するユーザーターンにアノテーションを付けます
  5. APIを呼び出すAlexaターンにアノテーションを付けます
  6. 情報を求めるAlexaターンにアノテーションを付けます
  7. スキルモデルをビルドします

前提条件

このチュートリアルを実行するには、Alexa Conversationsスキルが必要です。まだスキルを作成していない場合は、以下の手順に従って、開発者コンソールで作成してください。

Alexa Conversationsスキルを作成するには

  1. 開発者コンソールにログインします。
  2. スキルの作成をクリックします。
  3. スキル名を入力します。
  4. スキルに追加するモデルを選択カスタムをクリックします。
  5. スキルのバックエンドリソースをホスティングする方法を選択で、ユーザー定義のプロビジョニングを選択します。
    このチュートリアルではバックエンドコードを使用しないため、どのホスティング方法を選択するかは重要ではありません。
  6. 右上にあるスキルを作成をクリックします。
  7. スキルに追加するテンプレートを選択で、スクラッチで作成をクリックし、選択をクリックします。
  8. 次の手順に従って、Alexa Conversationsをサポートするために必要なインターフェースを有効にします。
    1. 左側のペインで、インターフェースをクリックします。
    2. インターフェースのリストで、Alexa Presentation Languageインターフェースを有効にします。
    3. インターフェースのリストで、Alexa Conversationsを有効にして、Alexa Conversationsをデフォルトのダイアログマネージャーとして使用するチェックボックスをオンにします。
    4. ヘッダーバーのインターフェースを保存をクリックします。
  9. 左側のメニューで、呼び出し名をクリックします。
  10. 呼び出し名を変更し、画面上部にある保存をクリックします。

ステップ1: ダイアログを作成する

最初のステップは、スキルを実行する過程でAlexaとユーザーの間で行われる一般的な会話を作成することです。ここでは、このページの冒頭で見たWeatherスキルの会話を入力します。

ダイアログを作成するには

  1. 左側のメニューで、Alexa Conversationsを展開します。
  2. ダイアログをクリックし、次にダイアログを追加をクリックします。
  3. ダイアログ名にdialog0と入力します。
  4. ユーザー:行に、天気を教えてと入力します。
  5. ALEXA:行にどの都市ですか?と入力します。
  6. ダイアログの下にあるユーザーの発話をクリックし、ユーザー:行に神戸と入力します。
  7. Alexaのセリフをクリックし、ALEXA:行に神戸の気温は二十一度です。と入力します。
  8. ヘッダーバーの保存をクリックします。
    ユーザー:行とALEXA:行(ターン)の右側に表示される感嘆符のマークは、これらのターンの設定が不十分であることを示しています。ユーザーターンには発話セットを、Alexaターンには応答を設定する必要があります。会話を結び付けるためには、スロットタイプにラベルを付け、APIを定義する必要もあります。これらのタスクは、以降のステップで実行します。
    Weatherスキルのダイアログ
    Weatherスキルのダイアログ

ステップ2: 結果を返すためのカスタムスロットタイプを作成する

このステップでは、APIが返す情報用にカスタムスロットタイプを作成します。この例では、GetWeather APIが都市と気温を返すため、Alexaは「神戸の気温は二十一度です。」と応答します。 したがって、都市と気温のプロパティを含むカスタムスロットタイプを以下の手順で作成する必要があります。

カスタムスロットタイプを作成するには

  1. 左側のメニューでアセットを展開し、スロットタイプをクリックします。
  2. +スロットタイプをクリックします。
  3. プロパティを持つカスタムスロットタイプを作成を選択し、スロットタイプの名前にreturnedWeatherと入力して、次へをクリックします。
    プロパティを持つカスタムスロットタイプを作成する
    プロパティを持つカスタムスロットタイプを作成する
  4. 新しいプロパティを追加をクリックし、タイプ名にcityと入力して、スロットタイプAMAZON.Cityを選択します。
  5. 同様の手順で、タイプ名がtemperature、スロットタイプがAMAZON.NUMBERのプロパティを追加します。
    2つのプロパティを持つカスタムスロットタイプ
    2つのプロパティ(temperatureとcity)を持つカスタムスロットタイプ
  6. ヘッダーバーの保存をクリックします。

ステップ3: 最初のユーザーターンにアノテーションを付ける

ダイアログに戻って、最初のユーザーターンを確認します。今度は、ユーザーの発話によって何が発生するかを考えます。

「天気を教えて」と話しかける場合、ユーザーは天気を返すAPIを呼び出したいと考えています。そこで、ダイアログアクトがInvoke APIsの発話セットを定義します。これは、ユーザーがAlexaに天気をたずねるさまざまな発話をまとめたものです。

ユーザーターンでは通常、変数値を持つ単語にはスロットタイプを割り当てて強調表示します。このユーザーターン(「天気を教えて」)には変数値を持つ単語がないため、発話セットを作成するだけでかまいません。

最初のユーザーターンにアノテーションを付けるには

  1. 左側のメニューのダイアログをクリックし、手順1: ダイアログを作成するで作成したダイアログをクリックします。
  2. 最初のユーザーターンで、任意の場所をクリックします。
  3. 右側に表示されるユーザー入力パネルで、ダイアログアクトにInvoke APIsを選択します。
  4. 発話セットの下にあるボックスをクリックし、新しい発話セットを作成を選択します。
  5. 発話セット名にget_weatherと入力します。
    ダイアログアクトは既に選択しているため、ダイアログアクトボックスにはInvoke APIsが自動的に設定されます。必要なのはAPI定義の選択だけです。
  6. サンプル発話発話を追加をクリックし、天気を教えてと入力してEnterキーを押します。
    発話のボックスが灰色(参照用)になっている場合でも、この手順を実行する必要があります。
  7. 上述の手順を繰り返して、サンプル発話に天気を知りたい天気はを追加します。
    各エントリの後には、必ずEnterキーを押してください。
    発話セット
    発話セット
  8. 発話セットを編集ダイアログボックスで、保存をクリックします。
  9. ヘッダーバーの保存をクリックします。

ステップ4: 情報を提供するユーザーターンにアノテーションを付ける

GetWeather APIは都市名を要求するため、都市名を指定するユーザーターン(「神戸」)にアノテーションを付ける必要があります。ユーザーは「神戸」の代わりに任意の都市名を指定できるため、都市にはスロットタイプでラベルを付ける必要があります。

次に、ダイアログアクトが引数を提供の発話セットを定義します。これは、ユーザーがAlexaに都市名を提供するさまざまな発話をまとめたものです。

情報を提供するユーザーターンにアノテーションを付けるには

  1. 「神戸」のユーザーターンで、神戸の文字をカーソルでハイライトします。
  2. スロットタイプで、AMAZON.Cityを選択します。
  3. 変数名はデフォルト値のままにして、追加をクリックします。
    スロットタイプ
    スロットタイプ
  4. ヘッダーバーの保存をクリックします。
  5. ダイアログに戻って、ユーザーターン「神戸」の行の任意の場所をクリックします。
  6. 右側に表示されるユーザー入力パネルで、ダイアログアクトに引数を提供を選択します。
  7. 発話セットの下にあるボックスをクリックし、新しい発話セットを作成を選択します。
  8. 発話セット名にinform_cityと入力します。
    ダイアログアクトは既に選択しているため、ダイアログアクトボックスには引数を提供が自動的に設定されます。
  9. サンプル発話発話を追加をクリックし、{city}と入力してEnterキーを押します。
    Enterキーは必ず押してください。
  10. 上述の手順を繰り返し、サンプル発話{city}の{city}ではを追加します。それぞれを入力した後に、必ずEnterキーを押してください。
  11. スロットまで下にスクロールします。
    cityスロットはサンプル発話に含めているため、スロットリストに自動的に表示されます。
  12. cityのスロットタイプとして、AMAZON.Cityを選択します。
  13. 発話セットを編集ダイアログボックスで、保存をクリックします。
    発話セット
    発話セット
  14. ヘッダーバーの保存をクリックします。
  15. ユーザーターン「神戸」の右側に表示されるユーザー入力パネルで、変数→スロットのマッピングをamazonCITY0cityに編集します。
    ダイアログとユーザー入力パネル
    ダイアログとユーザー入力パネル
  16. ヘッダーバーの保存をクリックします。

ステップ5: APIを呼び出すAlexaターンにアノテーションを付ける

このダイアログで、APIを呼び出すAlexaターンは「神戸の気温は二十一度です。」です。 このターンでGetWeather APIを呼び出します。このターンにアノテーションを付けるには、ダイアログアクトを選択して応答を作成します。

APIを呼び出すAlexaターンにアノテーションを付けるには

  1. ダイアログで、Alexaターン「神戸の気温は二十一度です。」の行の任意の場所をクリックします。
  2. 右側に表示されるAlexaの応答パネルで、ダイアログアクトにAPI Successを選択します。
  3. 呼び出すAPIで、新しいAPI定義を作成をクリックします。
  4. APIの名前としてGetWeatherを入力します。
  5. 引数セクションの引数を追加をクリックします。
  6. 引数名には、cityと入力します。スロットタイプで、AMAZON.Cityを選択します。
  7. 戻り値で、先ほど作成したreturnedWeatherスロットタイプを選択します。
    GetWeather APIのAPI定義
    GetWeather APIのAPI定義
  8. API定義ダイアログボックスで保存をクリックします。
  9. ヘッダーバーの保存をクリックします。
    Alexaターン「神戸の気温は二十一度です。」Alexaの応答パネルに 戻ります。
  10. 呼び出すAPIセクションに変数から引数のマッピングのセクションが表示されない場合は、GetWeather APIを選択したボックスをクリックすると、変数から引数のマッピングが表示されます。
  11. 呼び出すAPIセクションで、変数→引数マッピングをamazonCITY0cityに編集します。
  12. 戻り値の型変数マッピングを、returnedWeatherreturnedWeather0に編集します。
    Alexaターンの応答を設定する
    Alexaターンの応答を設定する
  13. Alexaの応答応答セクションで、新しい応答を作成をクリックします。
  14. 応答名にreturn_weatherと入力します。
  15. Alexaプロンプトに表示されている「神戸の気温は二十一度です。」神戸の文字をカーソルでハイライトします。
    スロットタイプ選択ボックスが表示されます。
  16. スロットタイプ選択ボックスの下部にある新しい引数を作成cityと入力し、追加をクリックします。
  17. 視覚応答の下までスクロールして引数セクションを表示します。
  18. city引数のスロットタイプとして、AMAZON.Cityを選択します。
    Alexaの応答
    Alexaの応答の設定
  19. 保存をクリックします。
  20. 右側のパネルの応答セクションで、変数引数マッピングをreturnedWeather0.citycityに編集します。
    変数から引数のマッピングを編集する
    設定が完了したAlexaターン
  21. ヘッダーバーの保存をクリックします。

ステップ6: 情報を求めるAlexaターンにアノテーションを付ける

Alexaターン「どの都市ですか?」にもアノテーションを付ける必要があります。 Alexaはこの質問により、GetWeather APIで必要な情報をリクエストします。割り当てるダイアログアクトは引数をリクエストです。

情報を求めるAlexaターンにアノテーションを付けるには

  1. ダイアログに戻って、Alexaターン「どの都市ですか?」内の任意の場所をクリックします。
  2. ダイアログアクトには引数をリクエストを選択します。
  3. リクエストするAPIにはGetWeatherを選択します。
    リクエストするAPI引数には、cityが自動的に設定されます。
    Alexaターンの応答を設定する
    Alexaターンの応答を設定する
  4. Alexaの応答応答セクションで、新しい応答を作成をクリックします。
  5. 応答名にrequest_cityと入力します。
  6. ダイアログボックスの一番下までスクロールし、保存をクリックします。
    プロンプトを作成する
    プロンプトを作成する
  7. ヘッダーバーの保存をクリックします。

ステップ7: スキルモデルをビルドする

ダイアログの各ターンの横には、そのターンの設定が完了していることを示すチェックマークが表示されます。

設定が完了したダイアログ
設定が完了したダイアログ

チェックマークではなく感嘆符が表示される場合は、前の手順で何かが抜けているため、スキルモデルをビルドできません。不足している設定を見つけるか、スキルモデルのビルド時に表示されるエラーメッセージを参照して詳細情報を確認します。

スキルモデルをビルドするには

クイックビルドが成功すると、完全ビルドが開始されます。