本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 Lex V2 機器人的履行進度更新
呼叫意圖的履行 Lambda 函數時,機器人在函數完成之前不會傳送回應。如果 Lambda 函數需要幾秒鐘以上的時間才能完成,使用者可能會認為機器人沒有回應。為了解決這個問題,您可以將機器人設定為在履行 Lambda 函數執行時將更新傳送給使用者,以便使用者知道機器人仍在處理其請求。
當您將出貨更新新增至意圖時,機器人會在履行開始時回應,並在履行進行期間定期回應。當您設定開始回應時,您可以指定機器人傳送回應之前的延遲時間。這樣,您就可以支持履行未相對快速完成的案例。設定更新回應時,請指定要傳送更新的頻率。您也可以設定逾時,以限制履行函數必須執行的時間。
您也可以將履行後回應新增至機器人。這可讓機器人根據履行成功、失敗或逾時來傳送不同的回應。
只有在使用StartConversation作業與機器人互動時,才會使用履行更新。您可以在使用StartConversation、RecognizeText和RecognizeUtterance作業與機器人互動時使用履行後更新
履行更新
當您的 Lambda 函數完成意圖時,系統會傳送履行更新。當您開啟出貨更新時,您會提供在出貨作業開始時傳送的開始回應,以及在出貨作業進行期間定期傳送的更新回應。
當您指定更新回應時,也會指定逾時,決定履行函數可執行的時間長度。您可以指定最多 15 分鐘 (900 秒) 的逾時長度。
如果您在主控台中設定active
為 false 或使用或作業來關閉出貨UpdateIntent作業更新,則不會使用為出貨作業更新指定的逾時,而是使用預設逾時 30 秒。CreateIntent
如果履行功能逾時,Amazon Lex V2 會執行以下三項作業之一:
-
履行後回應已設定且處於作用中狀態 — 傳回逾時回應。
-
已設定「履行後回應」且非作用中 — 傳回例外狀況。
-
未設定履行後回應 — 傳回例外狀況。
開始回應
在串流交談期間呼叫 Lambda 履行函數時,Amazon Lex V2 會傳回開始回應。它通常告訴用戶,實現意圖需要一些時間,他們應該等待。當您使用RecognizeText
或RecognizeUtterance
作業時,不會傳回開始回應。
您最多可以指定五個回應訊息。Amazon Lex V2 會選擇要播放給使用者的其中一個訊息。
您可以設定呼叫 Lambda 函數到傳回開始回應之間的延遲時間。如果 Lambda 函數在延遲完成之前完成其工作,則不會傳回開始回應。
您可以使用控制台或FulfillmentUpdatesSpecification結構中的active
切換開關來打開和關閉開始響應。如果active
是 false,則不會播放開始回應。
更新回應
Amazon Lex 會在 Lambda 履行函數執行期間,在串流交談期間定期傳回更新回應。當您使用RecognizeText
或RecognizeUtterance
作業時,不會播放更新回應。您可以設定更新回應播放的頻率。例如,您可以在履行功能執行期間每 30 秒播放一次更新回應,讓使用者知道程序正在執行,以及他們應該繼續等待。
您最多可以指定五個更新訊息。Amazon Lex V2 選擇要播放給用戶的消息。使用多個消息可以防止更新重複。
如果使用者在履行 Lambda 函數執行時透過語音或文字提供輸入,Amazon Lex V2 會將更新回應傳回給使用者。DTMF
如果 Lambda 函數在第一個更新期間結束之前完成其工作,則不會傳回更新回應。
您可以使用主控台或FulfillmentUpdatesSpecification結構中的active
切換開關來開啟和關閉更新回應。如果active
是 false,則不會傳回更新回應。
履行後回應
當履行功能結束時,Amazon Lex V2 會傳回履行後的回應。完成任何意圖時,可以使用履行後的響應,而不僅僅是在流式傳輸對話時。履行後回應可讓使用者知道函數已完成及結果。
您可以使用主控台或PostFulfillmentStatusSpecification結構中的active
切換開關,開啟或關閉履行後回應。如果active
為 false,則不會播放回應。
履行後回應有三種類型:
-
成功 — 在履行 Lambda 函數成功完成其工作時傳回。如果履行後回應未啟用。Amazon Lex V2 採取下一個設定的動作。
-
逾時 — 如果 Lambda 函數未在設定的逾時期間結束之前完成其工作,則傳回。如果履行後回應未處於作用中狀態,Amazon Lex V2 會傳回例外狀況。
-
失敗 — 當 Lambda 函數傳回回應
Failed
中的狀態,或 Amazon Lex V2 在完成意圖時遇到錯誤時傳回。如果履行後回應未處於作用中狀態,Amazon Lex V2 會傳回例外狀況。
每種類型最多可以指定五個訊息。Amazon Lex V2 會選擇要播放給使用者的其中一個訊息。
與履行開始和履行更新回應不同,履行後回應會同時播放串流和非串流對話。
您也可以選擇將 Lambda 函數設定為傳回履行後訊息來覆寫這些訊息。
注意
如果意圖具有結束回應,則會在履行後回應之後傳回。
Lex V2 的履行後示例
為了更好地理解履行後的響應,讓我們以一個例子 BookTrip
機器人,創建以幫助計劃旅行,BookFlight
意圖,配置了履行 Lambda 功能,該功能可保留客戶與航空公司的航班。一旦插槽 BookFlight
已經引起,Amazon Lex V2 調用履行 Lambda 函數。在此履行過程中,可能會發生下列三種結果之一:
-
成功 — 航班已成功預訂。
-
逾時 — 預訂程序所花費的時間超過設定的履行 Lambda 執行時間 (例如,如果無法在規定的時間內聯絡航空公司)。
-
失敗 — 由於其他原因,預訂失敗。
您可以利用履行後的回應,在每種情況下為客戶提供更有意義的回應。各種情況的範例如下:
-
成功回應 —「我們能夠成功預訂您的機票,並向您發送確認電子郵件。如果您有任何疑問,請隨時使用該電子郵件中提供的聯繫信息與我們聯繫。」
-
逾時回應 —「由於我們的系統流量繁忙,預訂機票的時間比預期更長。我們已經將您的請求放在我們的隊列中,並已向您發送一封電子郵件,其中包含與此請求對應的參考號 預訂機票後,我們將向您發送預訂確認信。如果您有任何疑問,請隨時使用該電子郵件中提供的聯繫信息與我們聯繫。」
注意
如果您未設定逾時訊息,Lex 會擲回對應於使用案例的 4XX 錯誤。
-
失敗回應 —「很抱歉,我們無法預訂您的機票。我們已經發送了一封電子郵件,其中包含我們在預訂時遇到的問題的詳細信息。」