設定意圖上下文 - Amazon Lex V1

如果您使用的是 Amazon Lex V2,請改參閱 Amazon Lex V2 指南

 

如果您使用的是 Amazon Lex V1,我們建議您將機器人升級至 Amazon Lex V2。我們不再將新功能新增至 V1,並強烈建議對所有新機器人使用 V2。

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

設定意圖上下文

您可以根據上下文有 Amazon Lex 觸發意圖。上下文是一種狀態變數,可在您定義機器人時與意圖相關聯。

當您使用主控台或使用PutIntent作業建立意圖時,可以配置意圖的前後關聯。您只能在英文 (US) (en-US) 地區設定中使用前後關聯,且僅當您使用PutBot作業建立機器人true時將enableModelImprovements參數設定為時,才能使用前後關聯。

前後關聯有兩種類型的關係:輸出前後關聯和輸入前後關聯。當一個關聯的意圖被滿足輸出上下文變為活動。輸出內容會在PostTextPostContent作業的回應中傳回至您的應用程式,並針對目前工作階段進行設定。啟動前後關聯後,它會在定義前後關聯時所配置的回合次數或時間限制內保持使用中狀態。

輸入上下文指定在其下的意圖可以被識別的條件。只有當其所有輸入上下文都處於活動狀態時,才能在交談期間識別意圖。沒有輸入上下文的意圖始終符合識別資格。

Amazon Lex 透過滿足輸出內容的意圖,自動管理啟動的環境生命週期。您也可以在呼叫PostContentPostText作業時設定使用中前後關聯。

您也可以針對意圖使用 Lambda 函數來設定對話的上下文。Amazon Lex 的輸出內容會傳送至 Lambda 函數輸入事件。Lambda 函數可以在其回應中傳送內容。如需詳細資訊,請參閱Lambda 函數輸入事件和回應格式

例如,假設您有意圖預訂租車,該租車配置為返回名為「book_car_履約」的輸出內容。當意圖實現時,Amazon Lex 設置輸出上下文變量「book_car_履行」。由於「book_car_fulfill」是一個活動上下文,因此只要將用戶的話語識別為引出該意圖的嘗試,設置為輸入上下文的「book_car_fuled」上下文的意圖被視為識別。您可以將其用於僅在預訂汽車後才有意義的意圖,例如通過電子郵件發送收據或修改預訂。

輸出上下文

當意圖達成時,Amazon Lex 會使意圖的輸出內容處於作用中狀態。您可以使用輸出內容來控制有資格跟進目前意圖的意圖。

每個前後關聯都有工作階段中維護的參數清單。參數是履行意圖的槽值。您可以使用這些參數為其他意圖預先填入插槽值。如需詳細資訊,請參閱 使用預設槽值

當您使用主控台或使用PutIntent作業建立意圖時,可以設定輸出內容。您可以使用多個輸出內容配置意圖。滿足意圖時,會啟動所有輸出前後關聯,並在PostText或回應中傳PostContent回。

下面顯示了使用控制台將輸出上下文分配給意圖。

輸出標記為 order_complete 的標籤,存活時間為 5 轉彎或 90 秒。

當您定義輸出內容,您也會定義其存留時間、內容包含在 Amazon Lex 回應中的時間長度或圈數。轉向是從您的應用程序向 Amazon Lex 提出的一個請求。一旦圈數或時間過期,上下文就不再處於活動狀態。

您的應用程式可以視需要使用輸出內容。例如,您的應用程式可以使用輸出內容來:

  • 根據上下文更改應用程序的行為。例如,旅遊應用程式對於上下文「已完成的書籍」可能會有不同的動作,而不是「租賃酒店」。

  • 將輸出內容傳回 Amazon Lex 做為下一個語音的輸入內容。如果 Amazon Lex 將語音識別為嘗試引出意圖,它會使用上下文來限制可傳回給具有指定上下文的意圖。

輸入上下文

您可以設定輸入內容,以限制識別意圖的交談中的點。沒有輸入上下文的意圖總是有資格被識別。

您可以使用控制台或PutIntent操作設置意圖響應的輸入上下文。一個意圖可以有多個輸入上下文。下面顯示了使用控制台將輸入上下文分配給意圖。

標記為訂單完成的輸入標籤。

對於具有多個輸入上下文的意圖,所有前後關聯都必須處於活動狀態才能觸發意圖。您可以在呼叫PostTextPostContentPutSession作業時設定輸入內容。

您可以在意圖中配置狹槽,以從目前使用中的前後關聯中取得預設值。Amazon Lex 辨識新意圖但未收到插槽值時,會使用預設值。定義槽時,您可以在塑形中指定前#context-name.parameter-name後關聯名稱和槽名稱。如需詳細資訊,請參閱使用預設槽值