Alexa Conversations用のAPIの定義



Alexa Conversations用のAPIの定義

Alexa Conversationsスキルを設定する場合、ユーザーとAlexaの対話中にAlexa Conversationsが呼び出すAPIをすべて定義する必要があります。つまり、API定義でリクエストを指定し、スキルコードで処理できるようにします。

ユーザーがスキルと対話すると、Alexa Conversationsは現在のダイアログコンテキストに基づいて正しいAPIを予測します。API定義は、インテントベースのダイアログモデルにおけるインテントのようなものです。

開発を始める

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

GetWeather APIを使う天気スキルについて考えてみましょう。このAPIは2つの引数(datecity)を受け取り、returnedWeatherの値を返します。この値にはcityNamedatehighTemperaturelowTemperatureのプロパティが含まれます。Alexa ConversationsスキルでこのAPIを使用するには、開発者ポータルでスキルを設定する際にGetWeather APIのAPI定義を作成する必要があります。

スキルのダイアログにアノテーションを付ける場合に多いのが、ユーザー行とAlexa行を結びつけるAPI定義です。たとえば、スキルに次のようなダイアログがあるとします。

ユーザー: 明日の神戸の天気を教えて。
Alexa: 明日の神戸の最高気温は二十二度、最低気温は十四度です。

このダイアログにアノテーションを付ける場合、ユーザー発話のグループとAlexaの応答の両方にGetWeather API定義を関連付けます。ユーザー発話のグループがAPIへの入力となり、Alexaの応答がAPIからAlexa TTSへの出力となります。

API定義、スロットタイプ、応答

APIを定義するときには、APIの名前、入力引数、戻り値の型を指定します。APIはスロットタイプと応答に紐づけられるため、以下の処理も必要であることに注意してください。

  • API引数およびビルトイン型以外の戻り値の型については、すべてスロットタイプを作成します。詳細については、Alexa Conversationsでのスロットタイプの使用を参照してください。

    たとえば、天気スキルで「明日の神戸の最高気温は二十二度、最低気温は十四度です」という応答を返す場合は、都市、日付、最高気温、最低気温を含むスロットタイプのreturnedWeatherを作成します。スロットタイプの詳細については、Alexa Conversationsでのスロットタイプの使用を参照してください。
  • 応答を作成して、Alexaからユーザーへの応答のしかたを定義します。詳細については、Alexa Conversations用のAlexaからの応答の定義を参照してください。

API定義とダイアログアクト

各APIには、Request Argsダイアログアクトを使用するダイアログが少なくとも1つ必要です。ユーザーが最初の発話の中で引数を渡すようなダイアログは作成できません。

API引数

APIの予測の精度を高めるために、次のことをお勧めします。

  • 各APIの引数を5個以下にすること。
  • 型の違う引数を使用すること。たとえば、AMAZON.NUMBER型の引数を2つ使うよりも、1つの引数をAMAZON.NUMBER型、もう1つの引数をAMAZON.Cityにしたほうが、一般的に高い精度が得られます。

APIを定義する

以下の手順に従って、開発者コンソールでスキルにAPIを定義します。

API定義を作成するには

  1. 開発者コンソールにログインし、Alexa Conversationsスキルに移動します。
  2. 左側のペインでAPI定義をクリックします。
  3. API定義を追加をクリックします。
  4. APIの名前を入力します。
  5. APIに引数がある場合は、以下の手順に従います。

    1. 引数セクションの引数を追加をクリックします。
    2. 引数の名前を入力し、スロットタイプを選択します。
    3. 他にも引数が必要な場合は、引数を追加をクリックして追加します。
  6. 戻り値セクションで、戻り値のスロットタイプを選択します。
    スロットタイプの詳細については、Alexa Conversationsでのスロットタイプの使用を参照してください。
  7. ヘッダーバーの保存をクリックします。