Alexa Conversationsでのスロットタイプの使用



Alexa Conversationsでのスロットタイプの使用

Alexa Conversationsでは、ユーザー発話、Alexa応答、APIの間でやり取りされるすべての変数にスロットタイプが必要です。インテントベースの対話モデルと同様に、Alexaがデータを認識してコンポーネント間で受け渡す方法をスロットタイプで定義します。

開発を始める

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

概要

開発者コンソールでダイアログにアノテーションを付ける場合は、ユーザー発話、発話、応答、API定義の変数にスロットタイプを割り当てます。たとえば、天気スキルではユーザーとAlexaの間で次のようなやり取りがあります。

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

このダイアログにアノテーションを付ける場合、次のようなスロットタイプを使用します。

  • ユーザー発話と発話セット「明日の神戸の天気を教えて」というユーザー発話では、「明日」AMAZON.DATEスロットタイプ、「神戸」AMAZON.Cityスロットタイプとして指定します。これはどちらもビルトインスロットタイプです。
  • API定義の入力引数GetWeather APIには、dateAMAZON.DATEスロットタイプ)とcityNameAMAZON.Cityスロットタイプ)の2つの入力引数があります。
  • API定義の戻り値GetWeather APIの戻り値には、returnedWeatherというカスタムスロットタイプを定義します。このスロットタイプには、cityNamedatehighTemperaturelowTemperatureというプロパティがあります。
  • 応答引数 – ユーザーに対するAlexaの応答のしかたを定義する際に、その応答に渡される引数としてreturnedWeatherを指定します。

使用するスロットタイプを決定する

変数や引数の必要性を特定した後、使用するスロットタイプを決定する際に、さまざまな要素を検討する必要があります。以下の表は、その選択肢をまとめたものです。

選択肢 説明

ビルトインスロットタイプとカスタムスロットタイプ

日付(AMAZON.DATE)や時刻(AMAZON.TIME)など、一般的な種類のデータにはビルトインスロットタイプを使用できます。ニーズに合うビルトインスロットタイプがない場合は、カスタムスロットタイプを作成できます。

ビルトインスロットタイプ
ユーザー: 明日の神戸の天気を教えて。「神戸」にはビルトインスロットタイプのAMAZON.Cityを使用できます)。

カスタムスロットタイプ
ユーザー: ピザにマッシュルームを追加して「マッシュルーム」にはToppingというスロットタイプを作成します)。

シングルスロットタイプとリストスロットタイプ

Alexa Conversationsは、最大5項目までのリストスロットタイプに対応しています。

シングルスロットタイプ
ユーザー: 明日の天気を教えて「明日」に必要なのはシングルスロットタイプのみです)。

リストスロットタイプ
ユーザー: ペパロニとピーマンとオリーブのピザを注文して (ピザの具材は複数になる場合があるため、AMAZON.FOODスロットタイプのリストを使用します)。

ビルトインスロットタイプ

ビルトインスロットタイプは既にAlexaがサポートしているスロットタイプです。日付(AMAZON.DATE)や時刻(AMAZON.TIME)など、一般的な種類のデータにはビルトインスロットタイプを使用できます。ビルトインスロットタイプの一覧については、スロットタイプリファレンスを参照してください。

Alexa Conversationsは、en-USのAlexa Entitiesに対応しています。Alexa Entitiesは、実在の個人、場所、物を表します。エンティティ解決をサポートするビルトインスロットタイプを使用すると、あいまいなユーザー発話を既知のエンティティとして明確に識別できます。詳細については、Alexa Entitiesリファレンスを参照してください。

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

ニーズに合うビルトインスロットタイプがない場合は、カスタムスロットタイプを作成できます。カスタムスロットタイプにはプロパティを持たせることができます。

プロパティを持つカスタムスロットタイプは、開発者コンソールを使用して、以下の手順で作成します。

ヒント

API定義と応答の文字列を受け取るスロットタイプを作成するには、値を持つカスタムスロットタイプを作成しますが、値は設定しないでください(発話セットでは機能しません)。

プロパティを持つカスタムスロットタイプを作成するには

  1. 開発者コンソールにログインし、Alexa Conversationsスキルに移動します。
  2. 左側のペインでアセットを展開し、スロットタイプをクリックします。
  3. +スロットタイプをクリックします。
  4. プロパティを持つカスタムスロットタイプを作成を選択し、スロットタイプの名前を入力して、次へをクリックします。
  5. 新しいプロパティを追加をクリックし、プロパティの名前を入力して、スロットタイプを選択します。
  6. 他にも追加するプロパティがあれば、前述の手順を繰り返します。
  7. ヘッダーバーの保存をクリックします。

シングルスロットタイプ

ユーザーのリクエストに含まれる変数が一度に1つの値しか持たない場合、必要なのはシングルスロットタイプです。たとえば、Alexaが「どのサイズのピザにしますか?」とたずねた場合、ユーザーは複数のサイズのリストではなく1つのサイズを答えます。

リストスロットタイプ

Alexa Conversationsは、最大5項目までのリストスロットタイプに対応しています。「ペパロニとピーマンとオリーブのピザを注文して」といったユーザーのリクエストには、リストスロットタイプを使用します。 リストスロットタイプには以下の制限があります。

  • リスト内の項目は、同じスロットタイプである必要があります。たとえば、1つのリストにAMAZON.US_CITYスロットタイプとAMAZON.US_STATEスロットタイプの両方を含めることはできません。
  • 作成できるリストはビルトインスロットタイプのリストのみです。カスタムスロットタイプ(APIから返されるスロットタイプなど)をリストにすることはできません。
  • 1つのダイアログ内でも、別々のターンで使用するのであれば、複数のスロットリストを含めることができます。