

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

# 為您的 Lex V2 機器人設定履行進度更新
<a name="streaming-progress"></a>

當呼叫意圖的履行 Lambda 函數時，在函數完成之前，機器人不會傳送回應。如果 Lambda 函數需要幾秒鐘以上才能完成，使用者可能會認為機器人沒有回應。若要解決此問題，您可以設定機器人在履行 Lambda 函數執行時傳送更新給使用者，讓使用者知道機器人仍在處理其請求。

當您將履行更新新增至意圖時，機器人會在履行開始時定期回應，並在履行進行時定期回應。當您設定啟動回應時，您可以在機器人傳送回應之前指定延遲。如此一來，您可以支援履行無法相對快速完成的情況。當您設定更新回應時，您可以指定要傳送更新的頻率。您也可以設定逾時，以限制履行函數必須執行的時間。

您也可以將完成後的回應新增至機器人。這可讓機器人根據履行成功、失敗或逾時，傳送不同的回應。

履行更新只會在使用 [StartConversation](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_StartConversation.html) 操作與機器人互動時使用。您可以在使用 [StartConversation](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_StartConversation.html)、[RecognizeText](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeText.html) 和 [RecognizeUtterance](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_runtime_RecognizeUtterance.html) 操作與機器人互動時，使用履行後更新 

## 履行更新
<a name="progress-updates"></a>

履行更新會在 Lambda 函數滿足意圖時傳送。當您開啟履行更新時，您會提供在履行開始時傳送的開始回應，以及在履行進行中定期傳送的更新回應。

當您指定更新回應時，您也可以指定逾時，以決定履行函數可執行的時間長度。您可以指定最長 15 分鐘 (900 秒） 的逾時長度。

如果您在主控台或使用 [CreateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_CreateIntent.html) 或 [UpdateIntent](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_UpdateIntent.html) 操作將 `active`設定為 false 來關閉履行更新，則不會使用為履行更新指定的逾時，而是使用預設的 30 秒逾時。

如果履行函數逾時，Amazon Lex V2 會執行下列三項操作之一：
+ 完成後回應已設定且處於作用中 – 會傳回逾時回應。
+ 完成後回應已設定且非作用中 – 會傳回例外狀況。
+ 未設定履行後回應 – 傳回例外狀況。

### 開始回應
<a name="progress-start"></a>

在串流對話期間呼叫 Lambda 履行函數時，Amazon Lex V2 會傳回啟動回應。它通常會告訴使用者，實現意圖需要一些時間，他們應該等待。當您使用 `RecognizeText`或 `RecognizeUtterance`操作時，不會傳回啟動回應。

您最多可以指定五個回應訊息。Amazon Lex V2 選擇要播放給使用者的訊息之一。

您可以在呼叫 Lambda 函數和傳回啟動回應之間設定延遲。如果 Lambda 函數在延遲完成之前完成其工作，則不會傳回啟動回應。

您可以使用主控台中的`active`切換開關或 [FulfillmentUpdatesSpecification](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html) 結構來開啟和關閉啟動回應。當 `active`為 false 時，不會播放啟動回應。

### 更新回應
<a name="progress-update"></a>

在 Lambda 履行函數執行時，Amazon Lex 會在串流對話期間定期傳回更新回應。當您使用 `RecognizeText`或 `RecognizeUtterance`操作時，不會播放更新回應。您可以設定更新回應播放的頻率。例如，您可以在履行函數執行時每 30 秒播放一次更新回應，讓使用者知道程序正在執行，並且應該繼續等待。

您最多可以指定五個更新訊息。Amazon Lex V2 選擇要播放給使用者的訊息。使用多個訊息可避免重複更新。

如果使用者在履行 Lambda 函數執行時透過語音、DTMF 或文字提供輸入，Amazon Lex V2 會將更新回應傳回給使用者。

如果 Lambda 函數在第一個更新期間結束前完成其工作，則不會傳回更新回應。

您可以使用主控台中的`active`切換開關或 [FulfillmentUpdatesSpecification](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_FulfillmentUpdatesSpecification.html) 結構來開啟和關閉更新回應。當 `active` 為 false 時，不會傳回更新回應。

## 履行後回應
<a name="progress-complete"></a>

履行函數結束時，Amazon Lex V2 會傳回履行後回應。履行任何意圖時，都可以使用履行後回應，而不只是在串流對話時。履行後回應可讓使用者知道函數已完成且結果。

您可以使用主控台中的`active`切換開關或 [PostFulfillmentStatusSpecification](https://docs.aws.amazon.com/lexv2/latest/APIReference/API_PostFulfillmentStatusSpecification.html) 結構來開啟和關閉履行後回應。當 `active`為 false 時，不會播放回應。

履行後回應有三種類型：
+ **成功** – 在履行 Lambda 函數成功完成其工作時傳回。如果履行後回應未處於作用中狀態。Amazon Lex V2 會採取下一個設定的動作。
+ **逾時** – 如果 Lambda 函數未在設定的逾時期間經過之前完成其工作，則傳回 。如果履行後回應未處於作用中狀態，Amazon Lex V2 會傳回例外狀況。
+ **失敗** – 當 Lambda 函數傳回回應`Failed`中的狀態，或 Amazon Lex V2 在滿足意圖時發生錯誤時傳回。如果履行後回應未處於作用中狀態，Amazon Lex V2 會傳回例外狀況。

您可以為每個類型指定最多五個訊息。Amazon Lex V2 選擇要播放給使用者的訊息之一。

與履行開始和履行更新回應不同，履行後回應會針對串流和非串流對話播放。

您也可以選擇透過設定 Lambda 函數來傳回履行後訊息來覆寫這些訊息。

**注意**  
如果意圖有結束回應，則會在完成後回應之後傳回。

### Lex V2 的履行後範例
<a name="post-fulfillment-example"></a>

為了更好地了解履行後回應，舉例來說，我們採用 *BookTrip* 機器人，該機器人旨在透過 *BookFlight* 意圖來協助規劃行程，並設定履行 Lambda 函數來保留客戶與航空公司的航班。引出 *BookFlight* 插槽後，Amazon Lex V2 會叫用履行 Lambda 函數。在此履行過程中，可能會發生下列三個結果之一：
+ **成功** – 航班已成功預訂。
+ **逾時** – 預訂程序所花費的時間超過設定的履行 Lambda 執行時間 （例如，如果無法在分配的時間內聯絡航空公司）。
+ **失敗** – 預訂因其他原因而失敗。

您可以利用履行後回應，在每種情況下為客戶提供更有意義的回應。每種情況的範例如下：
+ **成功回應** – 「我們能夠成功預訂您的門票，並已傳送確認電子郵件給您。如果您有任何問題，請隨時使用電子郵件中提供的聯絡資訊聯絡我們。」
+ **逾時回應** – 「由於系統流量過大，預訂您的票證需要比預期更長的時間。我們的佇列中有您的請求，並已傳送一封電子郵件給您，其中包含與此請求對應的參考號碼。預訂票證後，我們會傳送保留的確認給您。如果您有任何問題，請隨時使用電子郵件中提供的聯絡資訊聯絡我們。」
**注意**  
如果您未設定逾時訊息，Amazon Lex V2 會擲回與使用案例對應的 4XX 錯誤。
+ **失敗回應** –「很抱歉，我們無法預訂您的票證。我們已傳送電子郵件，其中包含我們在預訂您的保留時遇到的問題的詳細資訊。」