入力イベント形式の解釈 - Amazon Lex

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

入力イベント形式の解釈

Lambda 関数を Amazon Lex V2 ボットに統合する最初のステップは、Amazon Lex V2 イベントのフィールドを理解し、これらのフィールドからスクリプトを書くときに使用する情報を決定することです。次の JSON オブジェクトに、Lambda 関数に渡される一般的な形式の Amazon Lex V2 イベントを示します。

注記

入力形式は対応する messageVersion への変更なしに変わる場合があります。新しいフィールドがあっても、コードがエラーをスローすることはありません。

{ "messageVersion": "1.0", "invocationSource": "DialogCodeHook | FulfillmentCodeHook", "inputMode": "DTMF | Speech | Text", "responseContentType": "audio/mpeg | audio/ogg | audio/pcm | text/plain; charset=utf-8", "sessionId": string, "inputTranscript": string, "invocationLabel": string, "bot": { "id": string, "name": string, "localeId": string, "version": string, "aliasId": string, "aliasName": string }, "interpretations": [ { "interpretationSource": "Bedrock | Lex", "intent": { // see Intent for details about the structure }, "nluConfidence": number, "sentimentResponse": { "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE", "sentimentScore": { "mixed": number, "negative": number, "neutral": number, "positive": number } } }, ... ], "proposedNextState": { "dialogAction": { "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Intent for details about the structure }, "prompt": { "attempt": string } }, "requestAttributes": { string: string, ... }, "sessionState": { // see セッション状態 for details about the structure }, "transcriptions": [ { "transcription": string, "transcriptionConfidence": number, "resolvedContext": { "intent": string }, "resolvedSlots": { slot name: { // see スロット for details about the structure }, ... } }, ... ] }

入力イベントの各フィールドは次の通りです。

Lambda 関数に渡されるイベントデータの形式と Lambda 関数から返す必要があるレスポンスの形式を識別するメッセージのバージョン。

注記

インテントを定義するときに、この値を設定します。現在の実装で Amazon Lex V2 がサポートしているのは、メッセージバージョンのみです。そのため、コンソールではデフォルト値の 1.0 が想定され、メッセージのバージョンは表示されません。

Lambda 関数を呼び出したコードフック。以下の値を指定できます。

DialogCodeHook — Amazon Lex V2 は、ユーザーからの入力後に Lambda 関数を呼び出します。

FulfillmentCodeHook — Amazon Lex V2 は、必要なスロットがすべて満たされ、インテントが達成する準備ができた後に Lambda 関数を呼び出します。

ユーザー発話のモード。指定できる値は次のとおりです。

DTMF — ユーザーがタッチトーンキーパッド(デュアルトーンマルチ周波数)を使用して発話を入力します。

Speech — ユーザーが発話を行いました。

Text — ユーザーが発話を入力しました。

ユーザーに対するボットの応答の仕組み。text/plain; charset=utf-8 は、最後の発話が書き込まれたことを示し、audio で始まる値は最後の発話が行われたことを示します。

会話に使用される英数字のセッション識別子。

ユーザーからの入力のトランスクリプション。

  • テキスト入力の場合、これはユーザーが入力したテキストです。DTMF 入力の場合、これはユーザーが入力するキーです。

  • 音声入力の場合は、インテントを呼び出すか、スロットを埋めるために、Amazon Lex V2 がユーザーの発話を変換したテキストです。

Lambda 関数を呼び出した応答を示す値。初期応答、スロット、確認応答に呼び出しラベルを設定できます。

リクエストを処理したボットに関する情報。以下のフィールドで構成されます。

  • id - その作成時にボットに割り当てた識別子。ボットの Amazon Lex V2 コンソールでボット ID は、設定 ページを参照してください。

  • Name - ジョブを作成したときにジョブに指定する名前。

  • localeId — ボットに使用したロケールの識別子。ロケールのリストについては、「Amazon Lex V2 でサポートされている言語とロケール」を参照してください。

  • version - リクエストを処理したボットのバージョン。

  • aliasId — ボットのエイリアスの作成時に割り当てた識別子。ボットのエイリアス ID は、Amazon Lex V2 コンソールの エイリアス ページで参照してください。リストにエイリアス ID が表示されない場合は、エイリアス ID で右上の歯車アイコンを選択してオンにします。

  • aliasName — ボットエイリアスに付けた名前。

Amazon Lex V2 がユーザーの発話と一致する可能性があると考えるインテントに関する情報のリスト。各項目は、発話とインテントの一致に関する情報を次の形式で提供する構造です。

{ "intent": { // see Intent for details about the structure }, "interpretationSource": "Bedrock | Lex", "nluConfidence": number, "sentimentResponse": { "sentiment": "MIXED | NEGATIVE | NEUTRAL | POSITIVE", "sentimentScore": { "mixed": number, "negative": number, "neutral": number, "positive": number } } }

構造内のフィールドは以下のとおりです。

  • intent – インテントに関する情報が含まれる構造。構造の詳細については、「Intent」を参照してください。

  • nluConfidence – インテントがユーザーのインテントに一致しているという Amazon Lex V2 の信頼度を示すスコア。

  • SentimentResponse — 応答のセンチメントの分析。以下のフィールドが含まれます。

    • sentiment — 発話のセンチメントが POSITIVENEGATIVENEUTRAL、または MIXED であるかどうかを示します。

    • sentimentScore — 各センチメントを数値にマッピングした構造で、Amazon Lex V2 がその発話によるそのセンチメントの伝達に関する信頼度を示します。

  • interpretationSource — スロットを解決したのが Amazon Lex であるか、Amazon Bedrock であるかを示します。

Lambda 関数が sessionStatedialogActionDelegate に設定すると、このフィールドが表示され、会話の次のステップに関する Amazon Lex V2 の提案が表示されます。それ以外の場合、次の状態は、Lambda 関数からの応答で返される設定によって異なります。この構造は、次の両方に該当する場合のみ存在します。

  1. invocationSource 値は DialogCodeHook である

  2. 予測された dialogActiontypeElicitSlot です。

この情報を使用して、会話の適切な時点で runtimeHints を追加できます。詳細については、「ランタイムヒントによるスロット値の認識の向上」を参照してください。proposedNextState は、次のフィールドを含む構造です。

proposedNextState の構造は以下のとおりです。

"proposedNextState": { "dialogAction": { "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see Intent for details about the structure }, "prompt": { "attempt": string } }
  • dialogAction — Amazon Lex V2 が提案する次のステップに関する情報が含まれます。構造内のフィールドは以下のとおりです。

    • SlotToElicit — Amazon Lex V2で提案された通り、次に誘発するスロットです。このフィールドは、typeElicitSlot の場合のみ表示されます。

    • type — Amazon Lex V2 が提案している会話の次のステップです。以下の値を指定できます。

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

      ElicitIntent - 次のアクションは、ユーザーからインテントを誘発することです。

      ElicitSlot - 次のアクションは、ユーザーからスロット値を誘発することです。

      Close — インテントフルフィルメントのプロセスを終了し、ユーザーからの応答が返されないことを示します。

      ConfirmIntent — 次のアクションは、スロットが正しく、インテントのフルフィルメントの準備ができているかどうかをユーザーに尋ねることです。

  • intent — ユーザーが達成しようとしているとボットが判断したインテント。構造の詳細については、「Intent」を参照してください。

  • prompt — Amazon Lex V2 がユーザーに次のスロットの入力を促した回数を指定する値に対応するフィールド attempt を含む構造。指定できる値は、1 回目の試行に対する Initial、それ以降の試行に対する Retry1Retry2Retry3Retry4 および Retry5 の値です。

クライアントがリクエストで送信するリクエスト固有の属性を含む構造。セッション全体を通しては保持する必要がない情報は、リクエスト属性を使用して渡します。リクエスト属性がない場合、値は null になります。詳細については、「リクエスト属性を設定する」を参照してください。

ユーザーと Amazon Lex V2 ボット間の会話の現在の状態。構造の詳細については、「セッション状態」を参照してください。

Amazon Lex V2 がユーザーの発話と一致する可能性があると考える文字起こしのリスト。詳細については、「音声文字起こし信頼度スコアの使用」を参照してください。各項目は次の形式のオブジェクトで、1 つの可能な文字起こしに関する情報が含まれています。

{ "transcription": string, "transcriptionConfidence": number, "resolvedContext": { "intent": string }, "resolvedSlots": { slot name: { // see スロット for details about the structure }, ... } }

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

  • transcription – Amazon Lex V2 がユーザーの音声発話と一致する可能性があると考える文字起こし。

  • transcriptionConfidence – インテントがユーザーのインテントに一致しているという Amazon Lex V2 の信頼度を示すスコア。

  • resolvedContext — フィールド intent を含む構造で、発話に関係するインテントと一致します。

  • resolvedSlots — 発話によって解決される各スロットの名前をキーとする構造。各スロット名は、そのスロットに関する情報を含む構造にマップされます。構造の詳細については、「スロット」を参照してください。