我想要自訂我跟 Amazon Lex 機器人的互動。如何利用訊息結構 (例如回應卡、訊息群組和意圖情境) 來自訂我跟機器人的互動?
簡短描述
Amazon Lex V2 提供許多訊息建構功能,可讓您客製化使用者跟機器人的互動。請遵守本文的步驟,利用 Amazon Lex V2 主控台自訂訊息建構功能,例如回應卡、訊息群組和意圖情境。
解決方案
回應卡
回應卡包含一組針對提示的回應。當您希望 Amazon Lex 為用戶端應用程式提供一組預先定義的應用程式時,您可以使用回應卡。例如,您可在計程車預訂應用程式設定使用者可用的車輛類型,例如小型車、箱型車或 SUV。車輛類型在回應卡上會顯示為按鈕,而您的應用程式使用者則會選擇其中一個可用選項。然後將此選項作為輸入傳送到 Amazon Lex。
若要利用 Amazon Lex V2 主控台建立適合槽提示的回應卡,請依照下列步驟執行:
1. 開啟 Amazon Lex V2 主控台,然後選擇槽的意圖。
2. 在槽區段,選擇槽,然後選擇進階選項。
3. 從槽提示區段,選擇更多提示選項。
4. 選擇新增下拉式清單,然後選擇更多提示選項。您現在可以根據需求建立卡片和卡片群組。
備註:每個群組最多可定義三張卡片。使用者每次對話期間只選取一張卡片。
訊息群組
訊息群組是針對特定提示的一組適當回應。當您希望機器人在對話中動態構建回應時,可使用訊息群組。當 Amazon Lex 傳回用戶端應用程式的回應時,會從每個群組隨機選擇一則訊息。
例如,您在 TaxiBooking 機器人的第一訊息群組可能會包含機器人向使用者打招呼的不同方式。它可能會使用「哈囉」、「嗨」、「嘿」或「您好」。第二訊息群組可能包含不同形式的簡介,例如「我是 TaxiBooking chatbot」或「TaxiBooking chatbot 與您談話」。 第三訊息群組可能會傳達例如「我可以協助預訂計程車」或「我能協助您預訂計程車」等功能。Amazon Lex 會從每個群組隨機選取一則訊息,然後利用這些訊息來回應使用者。
請依照下列步驟,利用 Amazon Lex V2 主控台建立多個訊息群組用於成功滿足的訊息。
1. 開啟 Amazon Lex V2 主控台,然後選擇您要自訂的意圖。
2. 在滿足區段,選擇進階選項。
3. 在成功回應區段,選擇更多回應選項。
4. 選擇新增下拉式清單,然後選擇新增簡訊群組。您現在可以根據需求來建立訊息和訊息群組。
情境
情境為狀態變數,可在您定義機器人時關聯意圖。當您利用主控台或利用 CreateIntent 操作建立意圖時,您可設定意圖的情境。
情境關係有兩種類型,輸出情境和輸入情境。當滿足關聯的意圖時,輸出情境將變為有效狀態。在啟動情境之後,它會在您定義情境時設定的輪次或時間限制內保持有效狀態。
輸入情境指定識別意圖的條件。只有當所有輸入情境都在有效狀態時,才能在交談期間識別意圖。永遠都會識別未包含輸入情境的意圖。
建立輸出情境
當滿足意圖時,Amazon Lex 會啟動此意圖的輸出內容。您可利用輸出情境來控制意圖是否能夠繼續目前的意圖。您可利用多個輸出情境來設定意圖。當滿足意圖時,會啟動所有輸出情境,並透過 RecognizeText 或 RecognizeUtterance 回應傳回。
當您定義輸出情境時,您也定義了其存留時間。這表示內容在 Amazon Lex 回應中的時間長度或圈數。輪次是應用程式向 Amazon Lex 提出的一項請求。一旦輪次或時間過期,情境就不再處於有效狀態。
您的應用程式可根據需求來利用輸出情境。例如,您的應用程式可利用輸出情境來:
- 根據情境變更應用程式行為。例如,旅行預訂應用程式可能會針對 book_car_fulfilled 有一個動作,而對於 rental_hotel_fulfilled 有不同的動作。
- 將輸出情境傳回 Amazon Lex 作為下一則表達的輸入情境。如果 Amazon Lex 將語音識別為嘗試使用意圖,它會利用情境來限制可傳回指定情境的意圖。
請依照下列步驟建立/指定輸出情境:
1. 開啟 Amazon Lex V2 主控台,選擇您要自訂的意圖。
2. 在情境區段,輸入您要建立的輸出內容並指派給意圖。
建立輸入情境
您可設定輸入情境,限制對話識別意圖的點數。未包含輸入情境的意圖將始終被識別。
請依照下列步驟建立或指定輸入情境:
1. 開啟 Amazon Lex V2 主控台,選擇您要自訂的意圖。
2. 在情境區段,輸入您要建立的輸出內容並指派給意圖。
對於包含多個輸入情境的意圖,所有情境都必須處於有效狀態才能觸發意圖。您可以在調整 RecognizeText、RecognizeUtterance 或 PutSession 時設定輸入情境。
相關資訊
ImageReponseCard
MessageGroup
OutputContext
InputContext