Alexa Conversationsスキルモデルのデバッグ



Alexa Conversationsスキルモデルのデバッグ

開発者コンソールでAlexaシミュレーターのデバッグ機能を使用すると、ユーザーの発話をテストしてAlexa Conversationsのスキルモデルを改善できます。

概要

開発者コンソールでAlexaシミュレーターを使用して、スキルと対話できます。Alexaシミュレーターでは、Alexa ConversationsのスキルモデルがどのようにAlexa Conversationsのモデル予測(スロットとアクション)に解決されるかを確認できます。

解決されたスロットとアクションは、SkillDebugger.CaptureDebuggingInfoディレクティブとしてデバイスのログセクションに表示されます。正しいスロットやアクションに発話が解決されない場合は、Alexa Conversationsモデルを更新し、モデルをビルドしてから再試行します。

Alexa Conversationsのスキルモデルをデバッグする

開発者コンソールのAlexaシミュレーターを使用して、Alexa Conversationsのスキルモデルをデバッグできます。

Alexa Conversationsのスキルモデルをデバッグするには

  1. 開発者コンソールにログインし、Alexa Conversationsスキルに移動します。
  2. まだスキルモデルを作成していない場合は作成します。詳細については、Alexa Conversationsのスキルモデルのビルドを参照してください。
    「クイック」なAlexa Conversationsモデルが正常にビルドされてからでないと、スキルをテストできません。
  3. 上部のテストタブをクリックします。
  4. 左上にあるこのスキルでは、テストは無効になっていますで、開発中を選択します。
  5. デバイスのログチェックボックスを選択します。
  6. Alexaシミュレーターの入力またはマイクを長押しで発話をクリックし、<呼び出し名>を開いてと入力します。
    スキルの呼び出し名を覚えていない場合はビルドタブで確認できます。
  7. 発話または入力して、スキルと対話します。
  8. AlexaシミュレーターのデバイスのログセクションでSkillDebugger.CaptureDebuggingInfoディレクティブをクリックし、Alexa Conversationsのモデル予測(解決されたスロットとアクション)を表示します。

    SkillDebugger.CaptureDebuggingInfoディレクティブの構造とフィールドについては、ディレクティブの構造を参照してください。

  9. (オプション)ページを定期的に更新すると、以前のターンで蓄積されたデータまで調べないですみます。

出力の例

次のスクリーンショットは、Alexa Conversationsの天気スキルのモデル予測を示した例です。

AlexaシミュレーターでのAlexa Conversationsスキルのテスト

ディレクティブの構造

ConversationsModelPrediction型のSkillDebugger.CaptureDebuggingInfoディレクティブの形式は次のとおりです。

{
   "header": { ... },
   "payload": {        
       ...       
       "type": "ConversationsModelPrediction",
       "content": {
          "phrasesToSlots": [
             {
                "phrase": string,
                "slotType": string,
                "index": {
                   "start": integer,
                   "end": integer
                 }
             }
          ],
          "actions": [
             {
                "type": string enum ["API", "RESPONSE"],
                "name": string,
                "input": object,
                "output": object
             }
          ]
      }
   }
}

パラメーター

以下の表に、ConversationsModelPrediction型のSkillDebugger.CaptureDebuggingInfoディレクティブのパラメーターを示します。

フィールド 説明

payload.type

SkillDebugger.CaptureDebuggingInfoディレクティブのペイロードの型
指定できる値: ConversationsModelPrediction

payload.content.phrasesToSlots

ユーザー発話でスロットマッピングする認識フレーズ

payload.content.phrasesToSlots[n].phrase

ユーザー発話のスロットにマッピングされる認識フレーズ

payload.content.phrasesToSlots[n].slotType

ユーザー発話のフレーズにマッピングされるスロット

payload.content.phrasesToSlots[n].index

マッピングのインデックス

payload.content.phrasesToSlots[n].index.start

インデックスの開始

payload.content.phrasesToSlots[n].index.end

インデックスの終了

payload.content.actions

Alexaがユーザーの発話に対して実行するアクションシーケンス

payload.content.actions[n].type

アクションの型
指定できる値: APIRESPONSE

payload.content.actions[n].name

アクションの名前

payload.content.actions[n].input

アクション入力JSON

payload.content.actions[n].output

アクション出力JSON

モデル予測の例

以下の例は、「今日の神戸の天気を教えて」というユーザー発話に対するConversationsModelPrediction型(モデル予測)のSkillDebugger.CaptureDebuggingInfoディレクティブを示しています。

{
    "header": {
        "namespace": "SkillDebugger",
        "name": "CaptureDebuggingInfo",
        "messageId": "d78069b1-df34-4624-b9c1-EXAMPLE"
    },
    "payload": {
        "skillId": null,
        "timestamp": "2020-07-06T21:42:46.869Z",
        "dialogRequestId": "2705e572-7506-4f51-9bc9-EXAMPLE",
        "skillRequestId": "amzn1.echo-api.request.EXAMPLE",
        "type": "ConversationsModelPrediction",
        "content": {
            "phrasesToSlots": [
                {
                    "phrase": "神戸",
                    "slotType": "cityName",
                    "index": {
                        "start": 7,
                        "end": 8
                    }
                },
                {
                    "phrase": "今日",
                    "slotType": "AMAZON.DATE",
                    "index": {
                        "start": 8,
                        "end": 9
                    }
                }
            ],
            "actions": [
                {
                    "type": "API",
                    "name": "GetWeather",
                    "input": {
                        "date": "今日",
                        "city": "神戸"
                    },
                    "output": {
                        "lowTemp": 13,
                        "highTemp": 21,
                        "cityName": "神戸"
                    }
                },
                {
                    "type": "RESPONSE",
                    "name": "notify_api_response_GetWeather",
                    "input": {
                        "returnedWeatherResult": {
                            "lowTemp": 13,
                            "highTemp": 21,
                            "cityName": "神戸"
                        }
                    },
                    "output": {
                        "speech": {
                            "text": "神戸の最高気温は二十一度、最低気温は十三度です。",
                            "phrasesToInputParameters": [
                                {
                                    "phrase": “21”,
                                    "inputParameter": "returnedWeatherResult.highTemp",
                                    "index": {
                                        "start": 6,
                                        "end": 7
                                    }
                                },
                                {
                                    "phrase": “13”,
                                    "inputParameter": "returnedWeatherResult.lowTemp",
                                    "index": {
                                        "start": 12,
                                        "end": 13
                                    }
                                },
                                {
                                    "phrase": "神戸",
                                    "inputParameter": "returnedWeatherResult.cityName",
                                    "index": {
                                        "start": 1,
                                        "end": 2
                                    }
                                }
                            ]
                        }
                    }
                }
            ]
        }
    }
}