在一個常見的結構 AWS Lambda 功能 - Amazon Lex

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在一個常見的結構 AWS Lambda 功能

在 Lambda 回應中,有許多結構會重複發生。本節提供有關這些通用結構的詳細資訊。

意圖

"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 的查詢API呼叫中的回應語法

slots字段存在於intent結構中,並映射到一個結構,該結構的鍵是用於該意圖的插槽的名稱。如果插槽不是多值插槽 (請參閱以在插槽中使用多個值取得更多詳細資訊),則會將其對映至具有下列格式的結構。請注意,shapeScalar.

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

如果插槽是多值插槽,它所對應的物件會包含另一個名為的欄位values,該欄位會對應至結構清單,每個欄位都包含組成多值插槽之插槽的相關資訊。清單中每個物件的格式與一般槽所對映之物件的格式相符。請注意,shapeList,但下面shape的零組件槽的valuesScalar

{ 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 判定的值清單是使用者輸入的可能解析度。

物件清單,其中包含組成多值槽之槽的相關資訊。每個物件的格式與一般插槽的格式相符,並使用上述value欄位的shape和欄位。 values只有在槽由多個值組成時才會出現 (如在插槽中使用多個值需詳細資訊,請參閱)。下列JSON物件顯示兩個元件插槽:

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

工作階段狀態

sessionState欄位會對應至包含與使用者之交談狀態相關資訊的物件。顯示在對象中的實際字段取決于對話框操作的類型。響應中的必填字段如需 Lambda 回應中的必要欄位,請參閱。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 意圖 for details about the structure }, "originatingRequestId": string }

這些欄位如下所述:

物件清單,其中包含使用者在工作階段中使用之前後關聯的相關資訊。使用上下文來促進和控制意圖識別。如需前後關聯的詳細資訊,請參閱為您的 Lex V2 機器人設定意圖上下文。每個物件的格式如下:

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

這些欄位如下所述:

  • 名稱 — 前後關聯的名稱。

  • contextAttributes— 物件,其中包含前後關聯的屬性名稱以及它們所對應的值。

  • timeToLive— 物件,指定前後關聯保持使用中的時間長度。此物件可以包含下列一個或兩個欄位:

    • timeToLiveInSeconds— 前後關聯保持使用中狀態的秒數。

    • turnsToLive— 前後關聯保持使用中的迴轉數。

代表會話特定上下文信息的鍵/值對的映射。如需詳細資訊,請參閱設定 Lex V2 機器人的工作階段屬性。物件的格式如下:

{ string: string, ... }

為客戶可能用於插槽的片語提供提示,以改善音訊辨識度。您在提示中提供的值可提高對這些值的音頻識別,而不是聽起來相似的單詞。runtimeHints物件的格式如下:

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

該字slotHints段映射到一個對象,該對象的字段是機器人中的意圖的名稱。每個意圖名稱都映射到一個對象,該對象的字段是該意圖的插槽的名稱。每個插槽名稱映射到具有單個字段的結構runtimeHintValues,該字段是對象列表。每個物件都包含對應至提示的phrase欄位。

決定 Amazon Lex V2 要採取的下一個動作。物件的格式如下:

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

這些欄位如下所述:

  • slotElicitationStyle— 決定 Amazon Lex V2 如何解譯來自使用者的音訊輸入 (如果dialogActionElicitSlot)。type如需詳細資訊,請參閱在對話期間使用拼寫樣式捕獲插槽值。可能的值如下:

    Default— Amazon Lex V2 會以預設方式解譯音訊輸入,以滿足插槽。

    SpellByLetter— Amazon Lex V2 會偵聽使用者對插槽值的拼寫。

    SpellByWord— Amazon Lex V2 會使用與每個字母相關聯的單字 (例如「a in apple」) 偵聽使用者對插槽值的拼寫。

  • slotToElicit— 定義要從使用者引出的插槽 (如果typedialogAction是)。ElicitSlot

  • type — 定義機器人應該執行的動作。可能的值如下:

    Delegate— 讓 Amazon Lex V2 確定下一個步驟。

    ElicitIntent— 提示客戶表達意圖。

    ConfirmIntent— 確認客戶的位置值,以及意圖是否已準備好履行。

    ElicitSlot— 提示客戶為意圖提供插槽值。

    Close— 結束意圖履行程序。

意圖intent欄位的結構,請參閱。

要求的唯一識別碼。此欄位對於 Lambda 回應而言是選擇性的。