本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
調用對話框代碼掛鉤
當 Amazon Lex 傳送訊息給使用者時,在交談中的每個步驟中,您都可以使用 Lambda 函數做為交談的下一個步驟。您可以使用函數根據交談的目前狀態來實作商務邏輯。
執行的 Lambda 函數與您正在使用的機器人別名相關聯。若要在意圖中的所有對話方塊程式碼掛接中叫用 Lambda 函數,您必須選取「使用 Lambda 函數來初始化和驗證意圖」。如需選擇 Lambda 函數的詳細資訊,請參閱建立 Lambda 函數並將其附加至機器人別名。
使用 Lambda 函數有兩個步驟。首先,您必須在對話中的任何時間點啟動對話方塊程式碼勾點。其次,您必須設定交談中的下一個步驟,才能使用對話方塊程式碼掛接。
下圖顯示了對話框代碼鉤激活。
![顯示條件式回應程式碼掛接處於作用中狀態。](images/code-hook-active.png)
接下來,將程式碼掛接設定為交談步驟的下一個動作。您可以將交談中的下一個步驟設定為叫用對話方塊程式碼掛接來執行此操作。下圖顯示了一個條件分支,其中調用對話框代碼掛鉤是交談的默認路徑的下一個步驟。
![條件式分支會將程式碼掛接顯示為交談中的下一個步驟。](images/code-hook-choose.png)
當程式碼掛接處於作用中狀態時,您可以設定三個回應以傳回給使用者:
-
成功 — 當 Lambda 函數成功完成時傳送。
-
失敗 — 如果執行 Lambda 函數發生問題,或 Lambda 函數傳回的
intent.state
值為,則傳送Failed
。 -
逾時 — 如果 Lambda 函數未在設定的逾時期間內完成,則傳送。
![顯示 Lambda 函數執行後訊息可用選項的流程圖。](images/conditional-code-hook.png)
選擇 Lambda 對話方塊程式碼掛接,然後選擇進階選項,以查看對應於 Lambda 函數叫用的三個回應選項。您可以設定值、設定後續步驟,以及套用與每個回應相對應的條件,以設計交談流程。在沒有條件或明確的下一個步驟的情況下,Amazon Lex V2 會根據交談的目前狀態決定下一個步驟。
在 [進階選項] 頁面上,您也可以選擇啟用或停用 Lambda 函數叫用。啟用函數時,會使用 Lambda 叫用來叫用對話方塊程式碼掛接,然後根據 Lambda 叫用結果顯示成功、失敗或逾時訊息。停用函數時,Amazon Lex V2 不會執行 Lambda 函數,而且會像對話方塊程式碼掛接成功一樣繼續進行。
您也可以設定在此訊息叫用 Lambda 函數時傳送至 Lambda 函數的叫用標籤。您可以使用此功能來協助識別要執行的 Lambda 函數部分。
注意
2022 年 8 月 17 日,Amazon Lex V2 發佈了與使用者對話管理方式的變更。此變更可讓您更好地控制使用者通過交談的路徑。如需詳細資訊,請參閱 了解交談流程管理。在 2022 年 8 月 17 日之前建立的機器人不支援對話方塊程式碼掛接訊息、設定值、設定後續步驟和新增條件。