本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在一個常見的結構 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
結構中,並映射到一個結構,該結構的鍵是用於該意圖的插槽的名稱。如果插槽不是多值插槽 (請參閱以在插槽中使用多個值取得更多詳細資訊),則會將其對映至具有下列格式的結構。請注意,shape
是Scalar
.
{
slot name
: { "shape": "Scalar", "value": { "originalValue":string
, "interpretedValue":string
, "resolvedValues": [string
, ... ] } } }
如果插槽是多值插槽,它所對應的物件會包含另一個名為的欄位values
,該欄位會對應至結構清單,每個欄位都包含組成多值插槽之插槽的相關資訊。清單中每個物件的格式與一般槽所對映之物件的格式相符。請注意,shape
是List
,但下面shape
的零組件槽的values
是Scalar
。
{
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 如何解譯來自使用者的音訊輸入 (如果
dialogAction
是ElicitSlot
)。type
如需詳細資訊,請參閱在對話期間使用拼寫樣式捕獲插槽值。可能的值如下:Default
— Amazon Lex V2 會以預設方式解譯音訊輸入,以滿足插槽。SpellByLetter
— Amazon Lex V2 會偵聽使用者對插槽值的拼寫。SpellByWord
— Amazon Lex V2 會使用與每個字母相關聯的單字 (例如「a in apple」) 偵聽使用者對插槽值的拼寫。 -
slotToElicit— 定義要從使用者引出的插槽 (如果
type
的dialogAction
是)。ElicitSlot
-
type — 定義機器人應該執行的動作。可能的值如下:
Delegate
— 讓 Amazon Lex V2 確定下一個步驟。ElicitIntent
— 提示客戶表達意圖。ConfirmIntent
— 確認客戶的位置值,以及意圖是否已準備好履行。ElicitSlot
— 提示客戶為意圖提供插槽值。Close
— 結束意圖履行程序。
如意圖需intent
欄位的結構,請參閱。
要求的唯一識別碼。此欄位對於 Lambda 回應而言是選擇性的。