StartBotConversation - Amazon Chime SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

StartBotConversation

StartBotConversation アクションにより、エンドユーザーと Amazon Lex v2 ボット間の音声会話が確立されます。ユーザーは必要な情報をボットに提供します。次に、ボットは情報を公衆交換電話網 (PSTN) Audio Lambda 関数に返し、関数は要求されたタスクを実行します。

例えば、ボットは会話の開始時にオプションのウェルカムメッセージを再生して、PSTN Audio Lambda 関数が実行できるタスクを簡単に説明できます。ボットが必要な情報を収集するまで、ユーザーとボットの間で会話が繰り返されます。会話が終了すると、Amazon Chime SDK はボットによって収集された情報を含むアクション成功イベントで PSTN Audio Lambda 関数を呼び出します。PSTN Audio Lambda 関数は情報を処理し、要求されたタスクを実行します。

Audio サービスは、ユーザーと本物そっくりの会話形式を提供します。例えば、音声プロンプトが終了する前に、ユーザーがボットに割り込み、質問に答えることができます。さらに、ユーザーは音声と DTMF の数字を自由に組み合わせて情報を提供できます。ボットは、ユーザーによる情報入力を待機してから応答します。ユーザーが話し終わってから音声入力を解釈するまでボットが待機する時間を設定できます。ユーザーは、通話中にクレジットカード番号などの追加情報を取得する時間が必要な場合、ボットに待機するように指示できます。

StartBotConversation アクションでは、ボットとの会話の間、Amazon Lex と Amazon Polly が使用されます。Amazon Lex と Amazon Polly の標準料金が適用されます。料金の詳細については、Amazon Lex ストリーミング会話の料金表Amazon Polly 料金のページを参照してください。

注記

このアクションは、ブリッジ通話や Amazon Chime SDK ミーティングに参加した通話では実行できません。

StartBotConversation 構文

一般的な StartBotConversation 構文の例を次に示します。

{ "SchemaVersion": "1.0", "Actions":[ { "Type": "StartBotConversation", "Parameters": { "CallId": "string", "ParticipantTag": "string", "BotAliasArn": "string", "LocaleId": "string", "Configuration": { "SessionState": { "SessionAttributes": { "string": "string" }, "DialogAction" : { "Type": "string" } }, "WelcomeMessages": [ { "Content": "string", "ContentType": "string" } ] } } } ] }
CallId

説明CallDetails AWS Lambda 関数呼び出しの参加者のもの。CallIDStartBotConversation アクションはこの ID をボットの SessionId として使用します。通話中に行われるすべてのボットの会話は、同じ会話セッションを共有します。Amazon Lex PutSession API を使用して、ユーザーとボットの間のセッション状態を変更できます。詳細については、「Amazon Lex Developer Guide」の「Managing sessions with the Amazon Lex v2 API」を参照してください。

使用できる値 – 有効な通話 ID。

必須ParticipantTag が存在する場合は、いいえ。

デフォルト値 – なし。

ParticipantTag

説明 – CallDetails で接続されている参加者のうちの 1 人の ParticipantTag

使用できる値 - LEG-A

必須CallId が存在する場合は、いいえ。

デフォルト値 – 呼び出した callLegParticipantTagCallDetails を指定すると無視されます。

BotAliasArn

説明 - Lex ボットのボットエイリアス ARN。ボットは PSTN Audio アプリケーションと同じ AWS リージョンに作成する必要があります。有効な Amazon Lex ボットエイリアスの形式は arn:aws:lex:region:awsAccountId:bot-alias/botId/botAliasId です。ここで region はボットが存在する AWS リージョンです。awsAccountId は Amazon Lex ボットが作成された AWS アカウント ID です。botId 値は、その作成時にボットに割り当てた識別子です。ボット ID は、Amazon Lex コンソールの [ボットの詳細] ページにあります。botAliasId は、その作成時にボットエイリアスに割り当てた識別子です。ボットエイリアス ID は、Amazon Lex コンソールの [エイリアス] ページにあります。

使用できる値 - 有効なボット ARN。

必須 – はい。

デフォルト値 - なし。

LocaleId

説明 - ボットに使用したロケールの識別子。ロケールおよび言語コードのリストについては、「Languages and locales supported by Amazon Lex」を参照してください。

使用できる値 - Amazon Lex でサポートされている言語とロケール。

必須 – いいえ。

デフォルト値 – en_US

構成

説明 - セッション状態とウェルカムメッセージを含む会話設定。Configuration オブジェクトの JSON 文字列表現の合計サイズは 10 KB に制限されています。

使用できる値 - Configuration オブジェクト。

必須 – いいえ。

デフォルト値 – なし。

設定。 SessionState

説明 - Amazon Lex v2 とのユーザーのセッションの状態。

使用できる値 - SessionState オブジェクト。

必須 – いいえ。

デフォルト値 – なし。

コンフィグレーション。 SessionState。 SessionAttributes

説明 - セッション固有のコンテキスト情報を表すキー/値のペアのマップ。このマップには、Amazon Lex v2 とクライアントアプリケーションの間で渡されるアプリケーション情報が含まれます。

使用できる値 - 文字列間のマッピング。

必須 – いいえ。

デフォルト値 – なし。

コンフィグレーション。 SessionState。 DialogAction.タイプ

説明 - ユーザーとのインタラクションにおいて、ボットが取る次のアクション。使用できる値:

  • Delegate Amazon Lex v2 が次のアクションを決定します。

  • ElicitIntent次のアクションはユーザーから意図を引き出します。

使用できる値 - Delegate | ElicitIntent

必須 – いいえ。

デフォルト値 – なし。

設定。 WelcomeMessages

説明 - 会話の開始時にユーザーに送信するメッセージのリスト。welcomeMessage フィールドを設定する場合、DialogAction.Type 値を ElicitIntent に設定する必要があります。

使用できる値 - メッセージオブジェクト

必須 – いいえ。

デフォルト値 – なし。

コンフィグレーション。 WelcomeMessages.コンテンツ

説明 - ウェルカムメッセージのテキスト。

使用できる値 - 文字列。

必須 – いいえ。

デフォルト値 – なし。

設定。 WelcomeMessages。 ContentType

説明 - ウェルカムメッセージのタイプを示します。

使用できる値 – PlainText | SSML

  • PlainText— メッセージにはプレーンな UTF-8 テキストが含まれています。

  • SSML - メッセージには音声出力のテキスト形式が含まれています。

必須 – はい。

デフォルト値 – なし。

アクションを使用する StartBotConversation

一般的な StartBotConversation アクションの例を次に示します。

{ "SchemaVersion": "1.0", "Actions":[ { "Type": "StartBotConversation", "Parameters": { "CallId": "call-id-1", "BotAliasArn": "arn:aws:lex:us-east-1:123456789012:bot-alias/ABCDEFGHIH/MNOPQRSTUV", "LocaleId": "en_US", "Configuration": { "SessionState": { "SessionAttributes": { "mykey1": "myvalue1" }, "DialogAction" : { "Type": "ElicitIntent" } }, "WelcomeMessages": [ { "Content": "Welcome. How can I help you?", "ContentType": "PlainText" } ] } } } ] }

ACTION_SUCCESS イベントの処理

StartBotConversation アクションの一般的な ACTION_SUCCESSFUL イベントの例を次に示します。

{ "SchemaVersion": "1.0", "Sequence": number, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "CallId": "string", "Type": "StartBotConversation", "Parameters": { // parameters provided in the StartBotConversation action. }, "CallDetails": { // Information about the call associated with the AWS Lambda invocation. }, "IntentResult": { "SessionId": "string", "SessionState": { "SessionAttributes": { "string": "string" }, "Intent": { "Name": "string", "Slots": { "string": { "Value": { "OriginalValue": "string", "InterpretedValue": "string", "ResolvedValues": ["string"] }, "Values": [] } }, "State": "string", "ConfirmationState": "string" } }, "Interpretations": [ { "NluConfidence": { "Score": number }, "Intent": { "Name": "string", "Slots": { "string": { "Value": { "OriginalValue": "string", "InterpretedValue": "string", "ResolvedValues": ["string"] }, "Values": [] } }, "State": "string", "ConfirmationState": "string" } } ] } } }
IntentResult

ユーザーとボットの間の会話の結果。

SessionId

ボット会話セッションの識別子。ユーザーがボットとの会話を開始すると、Amazon Lex によりセッションが作成されます。セッションは、ユーザーとボットの間で交換される情報をカプセル化します。StartBotConversation アクションは通話 ID をボットの SessionId として使用します。Lex PutSessionAPI を使用して、ユーザーとボットの間のセッション状態を変更できます。詳細については、「Amazon Lex Developer Guide」の「Managing sessions with the Amazon Lex V2 API」を参照してください。

SessionState

ユーザーの Amazon Lex v2 セッションの状態。

SessionState.SessionAttributes

セッション固有のコンテキスト情報を表すキー/値のペアのマップ。マップには、ボットにアタッチされた Lambda 関数と PSTN Audio Lambda 関数の間で渡されるボット会話情報が含まれています。

Interpretations

Amazon Lex によって導き出された、顧客の発話を満たす可能性のあるインテントのリスト。NluConfidence スコアの最も高いインテントが SessionState のインテントになります。

解釈。 NluConfidence.スコア

インテントがユーザーのインテントを満たしているという Amazon Lex v2 の信頼度を示すスコア。0.00~1.00 までの範囲になります。スコアが高いほど、信頼度が高くなります。

Intent

ユーザーが実行したいアクション。

Intent.Name

インテントの名前。

Intent.Slots

インテントのすべてのスロットのマップ。スロットの名前は、スロットの値にマップされます。スロットがいっぱいになっていない場合は、値は null です。

Intent.Slots.Value

スロットの値。

Intent.Slots.Values

スロットにユーザーが指定した 1 つ以上の値のリスト。

インテント、スロット、バリュー。 OriginalValue

スロットに対して入力された、ユーザーの返信のテキスト。

インテント、スロット、バリュー。 InterpretedValue

説明 - Amazon Lex v2 がスロットについて決定する値。実際の値は、ボットの値選択戦略の設定によって異なります。ユーザーが入力した値を使用できるか、Amazon Lex v2 に resolvedValues のリスト中の値を選ばせるかが行えます。

インテント、スロット、バリュー。 ResolvedValues

Amazon Lex v2 がスロットで認識した追加の値のリスト。

Intent.State

説明 - インテントの履行情報。使用できる値:

  • Failed - Lambda 関数はインテントを履行できませんでした。

  • Fulfilled - Lambda 関数はインテントを履行しました。

  • ReadyForFulfillment— インテントの情報が存在し、Lambda関数がインテントを実行できる。

意図。 ConfirmationState

説明 - インテントの確認を示します。使用できる値:

  • Confirmed - インテントが履行されます。

  • Denied - ユーザーは確認プロンプトで「いいえ」と答えました。

  • None - ユーザーは確認を求められなかったか、または確認を求められたが肯定も否定もしませんでした。

ACTION_FAILED イベントの処理

StartBotConversation アクションの一般的な ACTION_FAILED イベントの例を次に示します。

{ "SchemaVersion": "1.0", "Sequence": number, "InvocationEventType": "ACTION_FAILED", "ActionData":{ "CallId": "string", "Type": "StartBotConversation", "Parameters": { // parameters provided in the StartBotConversation action }, "ErrorType": "string", "ErrorMessage": "string" }, "CallDetails":{ } }
ErrorType

エラー状態を個別に識別する文字列。

ErrorMessage

エラー状態の一般的な説明。

エラーコード

次の表は、Lambda 関数が ACTION_FAILED イベントで返す可能性のあるエラーメッセージを示しています。

エラー 説明

InvalidActionParameter

1 つ以上のアクションパラメータが無効です。エラーメッセージには、無効なパラメータが示されます。

SystemException

アクションの実行中に、システムエラーが発生しました。

ResourceNotFound

指定したボットは見つかりませんでした。

ResourceAccessDenied

ボットへのアクセスは拒否されます。

ActionExecutionThrottled

ボット会話サービスの制限を超えています。エラーメッセージには、特定のサービスの制限を超えていることが示されます。

ボットを使用するアクセス許可の付与

次の例では、Amazon Chime SDK に Amazon Lex StartConversationAPI を呼び出すためのアクセス権限を付与しています。ユーザーにボットを使用する Audio サービスのアクセス許可を明示的に付与する必要があります。条件ブロックはサービスプリンシパルに必要です。条件ブロックはグローバルコンテキストキー AWS:SourceAccountAWS:SourceArn を使用する必要があります。AWS:SourceAccount は AWS アカウント ID です。AWS:SourceArn は、Lex ボットを呼び出す PSTN Audio アプリケーションのリソース ARN です。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowChimePstnAudioUseBot", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": "lex:StartConversation", "Resource": "arn:aws:lex:region:awsAccountId:bot-alias/botId/aliasId", "Condition": { "StringEquals": { "AWS:SourceAccount": "awsAccountId" }, "ArnEquals": { "AWS:SourceArn": "arn:aws:voiceconnector:region:awsAccountId:sma/smaId" } } } ] }

音声と DTMF のタイムアウトの設定

ユーザー入力をキャプチャするときの音声と DTMF のタイムアウトを設定できます。ボットとの会話を開始するときにセッション属性を使用してタイムアウトを設定し、必要に応じて Lex ボットの Lambda 関数で上書きできます。Amazon Lex では、インテントまたはボットに複数のスロットを設定できます。セッション属性をインテントレベルとスロットレベルに適用するように指定できるため、特定のタイプの入力を収集するときにのみ属性を設定するように指定できます。例えば、アカウント番号を収集する場合は、日付を収集する場合よりも長いタイムアウトを指定できます。セッション属性キーにはワイルドカードを使用できます。

例えば、すべてのインテントのすべてのスロットの音声タイムアウトを 4000 ミリ秒に設定するには、セッション属性名として x-amz-lex:start-timeout-ms:*:*、セッション属性値として 4000 を使用して、セッション属性を指定できます。詳細については、「Amazon Lex Developer Guide」の「Configuring timeouts for capturing user input」を参照してください。

会話中に DTMF 入力の使用

Amazon Lex ボットは、会話中の音声入力とキーパッド入力をサポートします。ボットはキーパッド入力を DTMF の数字として解釈します。入力をシャープ記号 (#) で終了し、星の記号 (*) を使用して会話をキャンセルするよう問い合わせに求めることができます。顧客にシャープ記号で入力を終了するように促さない場合、Lex は 5 秒後に追加のキー押下を待たなくなります。

請求とサービスクォータ

AWS 以下の費用を請求します。

  • 通話での Amazon Chime SDK の使用。詳細については、「Amazon Chime SDK の料金」を参照してください。

  • ユーザーの音声を解釈するための Amazon Lex の使用。詳細については、「Amazon Lex 料金」を参照してください。

  • ボットからのテキスト応答を合成するための Amazon Polly の使用。詳細については、「Amazon Polly 料金」を参照してください。

また、次のサービスクォータに注意する必要があります。

  • Amazon Chime SDK には、PSTN オーディオアクションで使用できる Amazon Lex ボットの最大数に対するサービスクォータがあります。StartBotConversation詳細については、『ジェネラルリファレンス』の「SIP トランキングと音声クォータ」を参照してください。AWS

  • Amazon Lex には、Lex ボットあたりの同時音声会話の最大数に関するサービスクォータがあります。クォータの増量については、Amazon Lex サービスチームにお問い合わせください。詳細については、「Amazon Lex Developer Guide」の「Guidelines and quotas」を参照してください。

  • Amazon Polly には、テキスト応答の合成に関するサービスクォータがあります。クォータの増量については、Amazon Polly サービスチームにお問い合わせください。Amazon Polly サービスのクォータの詳細については、「Amazon Polly Developer Guide」の「Quotas in Amazon Polly」を参照してください。