意圖

意圖可將使用者在一個對話回合中的意圖歸類。您通常會為一個代理程式定義多項意圖,您的意圖組合則可處理完整對話。當使用者輸入或說出某項內容時 (稱為「使用者表達內容」),Dialogflow 會為使用者表達內容進行比對,找出代理程式中最相符的意圖。比對意圖的作業也稱為「意圖分類」

舉例來說,您可以建立天氣代理程式來辨識及回應使用者提出的天氣相關問題。您可能會針對天氣預測的相關問題定義意圖。如果使用者說出「天氣概況如何?」,Dialogflow 會將該使用者表達內容與預報意圖進行比對。您也可以定義意圖,以從使用者表達內容中擷取有用的資訊,例如所需天氣預報的時間或地點。您的系統必須使用這類擷取資料,才能順利處理使用者傳送的天氣查詢。

代理程式從要求提供天氣資訊的使用者表達內容中擷取資料

基本意圖中包含以下幾項元素:

  • 訓練詞組:這些是使用者可能說出的詞組範例。如果使用者表達內容與其中一個詞組相近,Dialogflow 就會將其視為與意圖相符。您無須定義所有可能的範例,因為 Dialogflow 內建的機器學習技術會依據其他類似的詞組擴充清單。
  • 動作:您可以為各項意圖定義動作。Dialogflow 會在意圖比對完畢後將動作提供給系統,您就能使用該項動作觸發系統中定義的特定動作。
  • 參數:在執行階段中比對意圖時,Dialogflow 會提供從使用者表達內容中擷取的值來當做參數。每項參數都含有實體類型,可明確指出資料的擷取方式。與原始使用者輸入內容不同,參數是結構化的資料,可輕鬆用於執行某些邏輯或產生回應。
  • 回應:您所定義要傳回給使用者的文字、語音或視覺回應,可能是向使用者提供答案、詢問更多資訊或結束對話。

下圖呈現了意圖比對和回應使用者的基本流程:

處理使用者表達內容的代理程式和意圖

較複雜的意圖可能也包含下列內容:

  • 背景資訊:Dialogflow 背景資訊與自然語言脈絡相似。如果某人對您說「they are orange」(這些是橘色的),您需要背景資訊才能瞭解這個人指的是什麼。同樣的,為了讓 Dialogflow 處理使用者表達內容,就必須提供背景資訊,才能正確比對出意圖。
  • 事件:可讓您根據已發生的情況來叫用意圖,而非基於使用者的表達內容。