Lambda イベントとレスポンスの共通構造 - Amazon Lex

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

Lambda イベントとレスポンスの共通構造

Lambda レスポンスには、繰り返し発生する構造が数多くあります。これらの一般的な構造について詳しくは、このセクションで説明しています。

Intent

"intent": { "confirmationState": "Confirmed | Denied | None", "name": string, "slots": { // see スロット for details about the structure }, "state": "Failed | Fulfilled | FulfillmentInProgress | InProgress | ReadyForFulfillment | Waiting", "kendraResponse": { // Only present when intent is KendraSearchIntent. For details, see // https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax } }

intent フィールドは、次のフィールドを持つオブジェクトにマップされます。

ユーザーがインテントのスロットを確認し、インテントが達成する準備ができているかどうかを示します。以下の値を指定できます。

Confirmed — ユーザーはスロット値が正しいことを確認します。

Denied — ユーザーがスロット値が正しくないことを示しています。

None — ユーザーはまだ確認ステージに達していません。

インテントの名前。

インテントを達成するために必要なスロットに関する情報。構造の詳細については、「スロット」を参照してください。

インテントの達成ステータスを示します。以下の値を指定できます。

Failed — ボットはインテントを達成できませんでした。

Fulfilled — ボットはインテントの達成を完了しました。

FulfillmentInProgress — ボットはインテントを達成している最中です。

InProgress — ボットは、インテントを達成するために必要なスロット値を誘発している最中です。

ReadyForFulfillment — ボットはインテントのすべてのスロット値を誘発し、インテントを実行する準備ができています。

Waiting — ボットはユーザーからの応答を待っています (会話のストリーミングに限定される)。

Kendra 検索クエリの結果に関する情報が含まれます。このフィールドは、インテントが KendraSearchIntent の場合のみ表示されます。詳細については、「Kendra の Query API 呼び出しの応答構文」を参照してください。

スロット

slots フィールドは intent 構造内に存在し、そのインテントのスロットの名前をキーとする構造にマップされます。スロットが複数値スロットでない場合 (詳細は スロットで複数の値を使用する を参照)、次の形式の構造体にマップされます。shapeScalar であることに注意してください。

{ slot name: { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } } }

スロットが複数値スロットの場合、マップ先のオブジェクトには values という別のフィールドが含まれます。このフィールドは構造のリストにマップされ、各構造には多値スロットを構成するスロットに関する情報が含まれます。リスト内の各オブジェクトの形式は、通常のスロットがマップされているオブジェクトの形式と一致します。shapeList ですが、values の下のコンポーネントスロットの shapeScalar であることに注意してください。

{ slot name: { "shape": "List", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }, "values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ] }

スロットオブジェクトのフィールドは次のとおりです。

スロットの形状。この値は、スロットに複数の値がある場合は List で (詳細については「スロットで複数の値を使用する」を参照)、そうでない場合は Scalar です。

ユーザーがスロットに提供した値と Amazon Lex の解釈に関する情報を、以下の形式で含むオブジェクト。

{ "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }

各フィールドについて以下に説明します。

  • OriginalValue — Amazon Lex がスロット値に関連していると判断した、スロット誘発に対するユーザーの応答の部分。

  • InterpretedValue — ユーザー入力に基づいて Amazon Lex がスロットについて決定する値。

  • ResolvedValues — Amazon Lex がユーザー入力の解決として考えられると判断した値のリスト。

複数値スロットを構成するスロットに関する情報を含むオブジェクトのリスト。各オブジェクトの形式は、上記で説明した shape および value フィールドを含む通常のスロットの形式と一致します。values は、スロットが複数の値で構成されている場合にのみ表示されます (詳細は「スロットで複数の値を使用する」を参照)。次の JSON オブジェクトは 2 つのコンポーネントスロットを示しています。

"values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ]

セッション状態

sessionState フィールドは、ユーザーとの会話の状態に関する情報を含むオブジェクトにマップされます。オブジェクトに表示される実際のフィールドは、ダイアログアクションのタイプによって異なります。レスポンスの必須フィールドについては、「応答内の必須フィールド」を参照してください。sessionState オブジェクトの形式は次のとおりです。

"sessionState": { "activeContexts": [ { "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }, ... ], "sessionAttributes": { string: string, ... }, "runtimeHints": { "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }, "dialogAction": { "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Intent for details about the structure }, "originatingRequestId": string }

各フィールドについて以下に説明します。

ユーザーがセッションで使用しているコンテキストに関する情報を含むオブジェクトのリスト。コンテキストを使用してインテントを認識しやすくし、制御します。コンテキストの詳細については、「インテント・コンテキストを設定する」を参照してください。各オブジェクトの形式は次のとおりです:

{ "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }

各フィールドについて以下に説明します。

  • name – コンテキストの名前。

  • ContextAttributes — コンテキストの属性名とそれらがマップされる値を含むオブジェクト。

  • TimeToLive — コンテキストがアクティブである期間を指定するオブジェクト。このオブジェクトには、次の一方または両方のフィールドを含めることができます。

    • TimeToLiveInSeconds — コンテキストがアクティブのままである秒数。

    • turnsToLive – コンテキストがアクティブなままのターン数。

セッション固有のコンテキスト情報を表すキーバリューのペアのマップ。詳細については、「セッション属性を設定する」を参照してください。オブジェクトの形式は次のとおりです:

{ string: string, ... }

音声認識を改善するために、ユーザーがスロットに使用する可能性が高いフレーズのヒントを提供します。ヒントに入力した値によって、似たような言葉よりもそれらの値の音声認識が向上します。runtimeHints オブジェクトの形式は次のとおりです。

{ "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }

slotHints フィールドは、ボットのインテントの名前をフィールドとするオブジェクトにマップされます。各インテント名は、そのインテントのスロットの名前をフィールドとするオブジェクトにマップされます。各スロット名は、オブジェクトのリストである 1 つのフィールド runtimeHintValues を持つ構造にマップされます。各オブジェクトには、ヒントに対応する phrase フィールドが含まれています。

Amazon Lex V2 が次に実行するアクションを決定します。オブジェクトの形式は次のとおりです。

{ "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }

各フィールドについて以下に説明します。

  • slotElicitationStyledialogActiontypeElicitSlot である場合、ユーザーからの音声入力を Amazon Lex V2 がどのように解釈するかを決定します。詳細については、「スペルスタイルによるスロット値のキャプチャ」を参照してください。以下の値を指定できます。

    Default — Amazon Lex V2 は、音声入力をデフォルトの方法で解釈してスロットに対応します。

    SpellByLetter — Amazon Lex V2 は、ユーザーによるスロット値のスペルをリッスンします。

    SpellByWord — Amazon Lex V2 は、各文字に関連する単語 (「a as in apple」など) を使用して、ユーザーによるスロット値のスペルをリッスンします。

  • slotToElicitdialogActiontypeElicitSlot の場合に、ユーザーから誘発するスロットを定義します。

  • type — ボットが実行すべきアクションを定義します。以下の値を指定できます。

    Delegate - Amazon Lex V2 が次のアクションを決定できるようにします。

    ElicitIntent — 顧客にインテントを表現するよう促します。

    ConfirmIntent - 顧客のスロット値と、そのインテントを達成する準備ができているかどうかを確認します。

    ElicitSlot — インテントのスロット値を入力するよう顧客に促します。

    Close — インテント達成プロセスを終了します。

intent フィールドの構造については、「Intent」を参照してください。

リクエストの一意の識別子。Lambda レスポンスの場合、このフィールドはオプションです。