Alexa Conversationsのダイアログアクトのリファレンス
• (GA)
en-US
• (Beta)
en-AU
, en-CA
, en-IN
, en-GB
, de-DE
, ja-JP
, es-ES
, es-US
ダイアログアクトは、Alexa Conversationsがユーザー発話とAlexa応答の目的を識別するのに役立つタグです。Alexa Conversationsでは、ダイアログのフローの選択と、自動的なダイアログの展開にダイアログアクトを使用します。これにより、さまざまなバリエーションやフローのトレーニングデータを生成します。
ダイアログアクトには、ユーザー入力ダイアログアクトとAlexa応答ダイアログアクトの2つのセットがあります。ユーザー入力ダイアログアクトは、ユーザー入力の目的を表します。Alexa応答ダイアログアクトは、Alexaの応答の目的を表します。
ここでは、参考用にサンプルの天気スキルから次のダイアログを使用します。
ユーザー: 天気を教えて。 (ダイアログアクト: Invoke APIs)
Alexa: どの都市ですか? (ダイアログアクト: Request Args)
ユーザー: 神戸。 (ダイアログアクト: Inform Args)
Alexa: 日付はいつですか? (ダイアログアクト: Request Args)
ユーザー: 今日。 (ダイアログアクト: Inform Args)
Alexa: 今日の神戸の天気ですね? (ダイアログアクト: Confirm API)
ユーザー: はい。 (ダイアログアクト: Affirm)
Alexa: 今日の神戸の気温は二十一度です。 (ダイアログアクト: API Success)
ユーザー入力のダイアログアクト
発話セットを作成するときは、次のいずれかのダイアログアクトに関連付けます。
ダイアログアクト | 説明 |
---|---|
ユーザーは、前のターンのリクエストを肯定しています。 |
|
ユーザーは、前のターンのリクエストを否定しています。 |
|
ユーザーは、前のターンでAlexaがリクエストした引数を提供しています。 |
|
ユーザーは、APIを呼び出すダイアログパス上にいます。 |
Affirm
ユーザーが前回のAlexa応答ターンのリクエストを肯定していることを表します。
このダイアログアクトには、3つの一般的なユースケースがあります。
- Confirm Argsダイアログアクトを使用したAlexa応答ターンの後のユーザーターン
- Confirm APIダイアログアクトを使用したAlexa応答ターンの後のユーザーターン
- Offer Next APIダイアログアクトを使用したAlexa応答ターンの後のユーザーターン
例: 「はい」、「そうです」
制限事項: Alexa Conversationsでは、Confirm Argsダイアログアクトを使用したAlexa応答ターンの後にこのダイアログアクトが必要ですが、ユーザー入力ターン(アノテーション付き発話と発話セット)は使用されません。代わりに、「はい」や「そうです」などの事前定義された一連の発話が使用されます。
Deny
ユーザーが前回のAlexa応答ターンのリクエストを否定していることを表します。このダイアログアクトを使用してダイアログを作成する必要はありません。これは、否定的なユースケースをユーザーが明示的に指定しなかった場合、Alexa Conversationsがユーザーに代わってこれらを自動的にサポートするためです。
このダイアログアクトには、3つの一般的なユースケースがあります。
- Confirm Argsダイアログアクトを使用したAlexa応答ターンの後のユーザーターン
- Confirm APIダイアログアクトを使用したAlexa応答ターンの後のユーザーターン
- Offer Next APIダイアログアクトを使用したAlexa応答ターンの後のユーザーターン
例: 「いいえ」、「違います」
制限事項: Alexa Conversationsでは、Confirm Argsダイアログアクトを使用したAlexa応答ターンの後にこのダイアログアクトが必要ですが、ユーザー入力ターン(アノテーション付き発話と発話セット)は使用されません。代わりに、「いいえ」や「違います」などの事前定義された一連の発話が使用されます。
Inform Args
ユーザーがスロットを使用してAlexaに引数の値を通知していることを表します。このターンではAPIを呼び出していませんが、Alexaは最終的にこのスロットを使用してAPIを呼び出します。このダイアログアクトを使用して、ユーザーが値を肯定して通知していることを表すこともできます(前回のAlexa応答ターンがOffer APIで、引数をリクエストしている場合など)。ユーザー入力ターン(アノテーション付き発話と発話セット)には、少なくとも1つのスロットが必要です。
このダイアログアクトには、2つの一般的なユースケースがあります。
- ユーザー入力ターン(Invoke APIsダイアログアクト)と、通知された1つ以上の引数を使用するAlexa応答ターン(API SuccessまたはAPI Failureダイアログアクト)の間にあるユーザーターン
- Alexa応答ターン(Offer Next APIダイアログアクト)と、通知された1つ以上の引数を使用するAlexa応答ターン(API SuccessまたはAPI Failureダイアログアクト)の間にあるユーザーターン
例: 「{city}」、「{city}の」、「{city}では」
制限事項: このダイアログアクトは、プロパティを持つカスタムスロットタイプのリクエストに使用することはできません。使用できるのは、値を持つカスタムスロットタイプとビルトインスロットタイプをリクエストする場合のみです。
Invoke APIs
ユーザーが、最終的にAPIを呼び出すインテントを伝えていることを表します(ただし、このターンではAPIは呼び出しません)。このダイアログアクトには、2つの一般的なユースケースがあります。
- ダイアログの最初のターン(ユーザーターン)
- Alexa応答ターン (API SuccessまたはAPI Failureダイアログアクト)の後のユーザーターン
例: 「天気は?」「天気を教えて。」
Alexa応答のダイアログアクト
Alexa応答を設定するときには、その応答を次のいずれかのダイアログアクトに関連付けます。
ダイアログアクト | 説明 |
---|---|
API呼び出しが失敗したことをユーザーに通知しています。 |
|
API呼び出しが成功したことをユーザーに通知しています。 |
|
必須のAPI引数(すべて)と任意のAPI引数(任意の数)をユーザーに確認しています。 |
|
1つ以上の引数をユーザーに確認しています。 |
|
会話を続けるために、別のAPIを呼び出すダイアログパスをユーザーに提供しています(ただし、このターンではAPIは呼び出しません)。 |
|
同じAPIを呼び出すダイアログパスを提供し、指定された引数をリクエストしています(ただし、このターンではAPIは呼び出しません)。 |
|
1つ以上の引数をユーザーにリクエストしています。 |
API Failure
API呼び出しの失敗をAlexaがユーザーに通知していることを表します。
API Failureでは、これまでに収集したAPI引数は引き継がれません。一方、API Successではこれまでに収集したAPI引数が引き継がれます。
例: 「{city}の気象データは利用できません。」
必須フィールド:
呼び出すAPI
: 応答をレンダリングする前に呼び出すAPIです。最大2つのAPIをデイジーチェーン接続して呼び出すことができます。条件
: APLデータバインディングの構文に記述されている任意のブール条件です。この条件では、以降のダイアログのターンがシミュレーターによって考慮されます。この条件は、応答のレンダリングに影響せず、APIの戻り値に関連付けられた変数を含む場合があります。特定の応答のAPI Success/Failureの条件はそれぞれ排他的であるとともに、すべてのケースをカバーする必要があります。応答
: ユーザーにレンダリングする応答です。
2番目のダイアログアクト: このダイアログアクトを2番目のダイアログアクト(Offer Next APIまたはRequest Alt)とデイジーチェーン接続できます。
API Success
API呼び出しの成功をAlexaがユーザーに通知していることを表します。
API Successでは、これまでに収集したAPI引数が引き継がれます。一方、API Failureではこれまでに収集したAPI引数は引き継がれません。
例: 「{response.date}の{response.city}の気温は{response.temperature}度です。」
必須フィールド:
呼び出すAPI
: 応答をレンダリングする前に呼び出すAPIです。最大2つのAPIをデイジーチェーン接続して呼び出すことができます。条件
: APLデータバインディングの構文に記述されている任意のブール条件です。この条件では、以降のダイアログのターンがシミュレーターによって考慮されます。この条件は、応答のレンダリングに影響せず、APIの戻り値に関連付けられた変数を含む場合があります。特定の応答のAPI Success/Failureの条件はそれぞれ排他的であるとともに、すべてのケースをカバーする必要があります。応答
: ユーザーにレンダリングする応答です。
2番目のダイアログアクト: このダイアログアクトを2番目のダイアログアクト(Offer Next APIまたはRequest Alt)とデイジーチェーン接続できます。
Confirm API
API定義に属する必須のAPI引数(すべて)と任意のAPI引数(任意の数)をAlexaがユーザーに確認していることを表します。ユーザーが肯定すると、これらの引数を使用してAPIが呼び出されます(ただし、このターンではAPIは呼び出しません)。この機能を使用するには、API Success/API FailureダイアログアクトとAPIの引数を確認するターンより前に、特定のAPIを呼び出すダイアログがそれぞれ必要です。
後続のユーザー入力ターンでユーザーが肯定すると、ダイアログは続行されます。ユーザーが否定すると、ダイアログは終了し、ビルトイン応答reqmore
がレンダリングされて会話が継続されます。
Confirm API/Denyパスでダイアログを作成する必要はありません。これは、否定的なユースケースをユーザーが明示的に指定しなかった場合、Alexa Conversationsがユーザーに代わってこれらを自動的にサポートするためです。
例: 「{date}の{city}の天気ですね?」
その他の必須フィールド:
確認するAPI
: ユーザーに確認する引数を含むAPI定義です。確認するAPI引数
: ユーザーに確認する引数です。引数は確認するAPI
に属します。これには、必須引数(すべて)と任意の引数(任意の数)が含まれます。応答
: ユーザーにレンダリングする応答です。
その他の応答: これらの応答も同じダイアログアクトの確認するAPI
に関連付けられます。任意の引数と、関連する作成済みの応答の組み合わせが自動的に入力されます。
制限事項:
- Confirm API/Denyパスは、否定された引数を肯定されたかのように転送します。
- このダイアログアクトを使用して、プロパティを持つスロットタイプの引数を確認することはできません。
Confirm Args
任意のAPI定義に属する1つ以上のAPI引数をAlexaがユーザーに確認していることを表します。これらの引数は、最終的にAPIを呼び出すために使用されます(ただし、このターンではAPIは呼び出しません)。この機能を使用するには、特定の引数を確認する各ダイアログの前に、Request Argsダイアログアクトと引数を提供するターンが必要です。
後続のユーザー入力ターンでユーザーが肯定すると、ダイアログは続行されます。ユーザーが否定すると、Alexaは同じ引数セットに対して再度Request Argsで引数をリクエストします。Confirm Args /Denyパスでダイアログを作成する必要はありません。これは、否定的なユースケースをユーザーが明示的に指定しなかった場合、Alexa Conversationsがユーザーに代わってこれらを自動的にサポートするためです。
この確認は、確認するAPI引数
フィールドで指定された引数名と同じ引数を持つダイアログとAPIすべてに自動的に適用されます。
例: 「都市は{city}でいいですか?」
フィールド:
確認するAPI引数
: ユーザーに確認する引数です。引数はいずれかのAPI定義(必須または任意)に属します。少なくとも1つの引数が必要です。応答
: ユーザーにレンダリングする応答です。
その他の応答: これらの応答も同じダイアログアクトのリクエストするAPI
に関連付けられます。引数と、関連する作成済みの応答の組み合わせが自動的に入力されます。確認する引数のセットごとに、同じ引数セットでのRequest Argsターンが必要です(Confirm Args/Denyパスをサポートするため)。
制限事項:
- このダイアログアクトを使用して、プロパティを持つリストタイプまたはスロットタイプの引数を確認することはできません。
Offer Next API
会話を続けるために、別のAPIを呼び出すダイアログパスをAlexaがユーザーに提供していることを表します(ただし、このターンではAPIは呼び出しません)。このダイアログアクトは、前のターンがAPI Success/API FailureダイアログアクトのAlexa応答ターンである場合、またはこのターンがAPI Success/API Failureダイアログアクトとデイジーチェーン接続されている場合にのみ有効です。
後続のユーザー入力ターンでユーザーが肯定すると、Offer Next APIへのパスでダイアログが続行されます。ユーザーが否定すると、ダイアログは終了し、ビルトイン応答reqmore
がレンダリングされて会話が継続されます。
Offer Next API/Denyパスでダイアログを作成する必要はありません。これは、否定的なユースケースをユーザーが明示的に指定しなかった場合、Alexa Conversationsがユーザーに代わってこれらを自動的にサポートするためです。
例: (スタンドアロン。前のターンはAPI Successダイアログアクト): 「{date}の{city}の1時間ごとの予報をご希望ですか?」
例: (API Successダイアログアクトとデイジーチェーン接続): 「{response.date}の{response.city}の気温は{response.temperature}度です。1時間ごとの予報をご希望ですか?」
フィールド:
次に提供するAPI
: ユーザーに提供するAPI定義へのダイアログパスです。次にリクエストするAPI引数
: ユーザーがリクエストする、次に提供するAPI
(必須または任意)に属する引数です。このフィールドはオプションです。指定した場合、後続のユーザー入力ターンは、引数を提供ダイアログアクトを使用する必要があります。渡す応答引数
:次に提供するAPI
に渡す応答引数です。
制限事項:
- このダイアログアクトをスタンドアロンのダイアログアクトとして使用する場合、
次にリクエストするAPI引数
は機能しません。このダイアログアクトがデイジーチェーン接続されている場合は、次にリクエストするAPI引数
が機能します。 - Offer Next API /Denyパスは、否定された引数を肯定されたかのように転送します。
- プロパティを持つスロットタイプの変数または引数を
引数を提供するAPI
に渡すことはできません。 引数を提供するAPI
に変数を渡すことはできません。また、応答引数と引数を提供するAPI
の名前が同じ場合のみ、引数を提供するAPI
に応答引数を渡すことができます。- これが2つ目のダイアログアクトの場合、複雑な値がサポートされます。値は任意の引数にすることができ、複雑な値がサポートされます。
Request Alt
Alexaが同じAPIを呼び出すダイアログパスを提供し、指定された引数をリクエストしていることを表します(ただし、このターンではAPIは呼び出しません)。このダイアログアクトは、このターンがAPI Failureダイアログアクトとデイジーチェーン接続されている場合にのみ有効です。
例: (API Failureダイアログアクトとデイジーチェーン接続)「すみません。それは過去の日付です。別の日の天気を知りたいですか?」
フィールド:
リクエストする引数
: リクエストする引数です。
Request Args
API定義に属する1つ以上の引数をAlexaがユーザーに確認していることを表します。これらの引数は、最終的にAPIを呼び出すために使用されます(ただし、このターンではAPIは呼び出しません)。このダイアログアクトは、リクエストするAPI
フィールドで指定されたAPIに関連付けられており、引数名が同じでも他のAPIには使用されません。
例: 「どの都市ですか?」「どの都市のどの日ですか?」
フィールド:
リクエストするAPI
: ユーザーからリクエストされる、引数を含むAPI定義です。リクエストするAPI引数
: ユーザーからリクエストされる、リクエストするAPI
(必須または任意)に属する引数です。少なくとも1つの引数が必要です。応答
: ユーザーにレンダリングする応答です。
その他の応答: これらの応答も同じダイアログアクトのリクエストするAPI
に関連付けられます。引数と、関連する作成済みの応答の組み合わせが自動的に入力されます。このターンには、個々の必須引数に対する応答を含める必要があります(ユーザー主導のエラー修正などの機能をサポートするため)。
関連トピック
最終更新日: 2022 年 01 月 14 日