意圖

意圖會將使用者在一輪對話中的意圖分類。

意圖包含下列資料:

字詞 定義
顯示名稱 控制台顯示的意圖名稱。
標籤 用於分類意圖的標籤。例如:主要意圖。
訓練詞組 訓練詞組是使用者可能輸入或說出的範例詞組,稱為使用者輸入內容。當使用者輸入的內容與其中一個詞組相似時,Dialogflow CX 就會比對意圖。您不必定義所有可能的範例,因為 Dialogflow CX 內建的機器學習功能會使用其他類似詞組擴充清單。
參數 您可以定義訓練詞組,使用參數從使用者輸入內容的特定部分擷取值。
DTMF 模式 請參閱「電話整合的 DTMF」。

意圖比對

使用者輸入內容 (文字、語音或電話按鍵) 時,Dialogflow CX 會將輸入內容與意圖訓練詞組進行比較,找出最相符的項目。這項程序稱為意圖比對。只有與範圍內意圖路徑 (具有意圖需求的狀態處理常式) 相關聯的意圖,才能進行意圖比對。

系統會根據 DTMF 模式比對按鍵輸入內容。不過,在搜尋與文字相符的意圖時,Dialogflow CX 會以意圖偵測信賴度 (也稱為信賴度分數) 為潛在相符項目評分。這些值的範圍介於 0.0 (完全不確定) 到 1.0 (完全確定)。

意圖評分後,可能會有兩種結果:

  • 如果分數最高的意圖,其可信度分數大於或等於分類門檻設定,系統就會傳回相符結果。
  • 如果沒有任何意圖達到門檻,系統就會叫用不相符事件。

訓練詞組

「訓練詞組」是使用者可能輸入或說出的範例詞組,稱為「使用者輸入內容」。您可以為每個意圖建立多個訓練詞組。當使用者輸入的內容與其中一個詞組相似時,Dialogflow CX 就會比對意圖。

舉例來說,訓練詞組「我想吃披薩」可訓練代理辨識與該詞組類似的使用者輸入內容,例如「買披薩」或「訂披薩」。

您不必定義所有可能的範例,因為 Dialogflow CX 內建的機器學習技術會根據您的清單,擴充其他類似的詞組。建議您建立至少 10 到 20 個訓練詞組 (視意圖複雜度而定),讓代理能辨識各種使用者輸入內容。舉例來說,如果您希望意圖能辨識使用者輸入的最愛顏色,可以定義下列訓練詞組:

  • 「I like red」(我喜歡紅色)
  • 「My favorite color is yellow」(我最喜歡的顏色是黃色)
  • 「black」(黑色)
  • 「Blue is my favorite」(我最愛藍色)
  • ...

自動生成及自動翻譯訓練詞組

您可以選擇使用 AI 生成功能自動生成訓練詞組,而不必手動輸入。如何使用這項功能:

  1. 前往「管理」分頁,然後點選「意圖」。選擇現有意圖,或點選「+ Create」建立新意圖。
  2. 請務必在「Description」(說明) 欄位中輸入意圖的目的,例如「當使用者詢問訂單狀態時,會觸發這個意圖」。AI 生成器會使用這個欄位,生成更準確的訓練詞組。
  3. 按一下「__ newly AI 生成的詞組」圓形按鈕。預設值為 3。一次生成超過 15 個訓練詞組可能會發生錯誤。
  4. 按一下「+ 新增」。AI 會生成指定數量的訓練詞組,並填入表格。請務必檢查所有生成的訓練詞組是否正確。

如要瞭解如何使用這項功能,自動生成及自動翻譯非預設語言的資料,請參閱多語言代理說明文件。

為訓練詞組加註

您可以標註部分訓練詞組,並設定相關參數,控管使用者資料的擷取方式。

舉例來說,假設訓練詞組為「東京明天的天氣預報為何?」,您應使用 date 參數為「明天」加上註解,並使用 location 參數為「東京」加上註解。當您為訓練詞組的某些部分加上註解時,Dialogflow CX 會辨識出這些部分只是使用者在執行階段提供的實際值範例。

如果使用者輸入「雪梨週五的天氣預報為何?」,Dialogflow CX 會從「Friday」擷取 date 參數,並從「Sydney」擷取 location 參數。

您必須為所有要擷取為參數的訓練詞組部分加上註解。否則 Dialogflow 不會擷取值。

使用控制台建構代理時,如果您新增的訓練詞組包含要與現有實體類型比對的部分,系統會自動為您建立大部分的註解。這些部分會在控制台中醒目顯示,您可以視需要編輯註解和參數。

如要使用主控台手動為訓練詞組加註:

  1. 選取要為訓練詞組加註的部分。
  2. 從清單中選取所需實體類型。
  3. 系統會在下方的參數表中為您建立參數。

使用 API 建構代理時,您必須手動為訓練詞組部分加上註解。查看 Intent 類型使用的 TrainingPhrase 類型。

選取意圖參照的通訊協定和版本:

通訊協定 V3 V3beta1
REST 意圖資源 意圖資源
RPC Intent 介面 Intent 介面
C++ IntentsClient 不適用
C# IntentsClient 不適用
Go IntentsClient 不適用
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 不適用 不適用
Python IntentsClient IntentsClient
小茹 不適用 不適用

訓練詞組建立的隱含實體

大多數自訂實體都是透過建立實體類型和新增實體項目來明確定義。不過,自訂實體也可能包含隱含值。當您為訓練詞組的文字加上註解,但註解文字並非所選實體類型定義的值,就會發生這種情況。加上註解的文字會成為隱含新增實體項目的實體參照值。如果實體類型是地圖實體,文字也會成為實體項目的同義詞。

預設歡迎意圖

建立代理時,系統會為您建立預設歡迎意圖。在某些語言中,意圖包含「嗨」或「您好」等訓練詞組,用於比對使用者一開始輸入的內容。您可以視需要編輯這個意圖。

使用 API 時,您可以透過下列意圖 ID 參照這個意圖:

00000000-0000-0000-0000-000000000000

如果代理啟動對話,您可以使用 API 觸發這個意圖。呼叫 detectIntent 或 streamingDetectIntent 方法時,請在 QueryInput.intent.intent 欄位中使用 projects/<PROJECT_ID>/locations/<LOCATION_ID>/agents/<AGENT_ID>/intents/00000000-0000-0000-0000-000000000000 值。

預設負面意圖

建立代理時,系統會為您建立預設的負面意圖。您可以將訓練詞組新增至這個意圖,做為負面範例。有時,使用者輸入的內容可能與一般意圖中的訓練詞組略有相似,但您不希望這些輸入內容與任何一般意圖相符。

舉例來說,訂房代理可能會使用「我想訂房」這類訓練詞組。如果使用者想購買關於房間的書,可能會說「我想買關於房間的書」。為確保使用者輸入內容與意圖不相符,您可以將該詞組新增為排除範例。

此外,您也應新增代理不支援的可能詞組,這樣就不會與任何意圖相符。不過,請避免加入大量這類詞組。舉例來說,如果您定義了 10,000 個預設負面意圖詞組,就會對正常意圖比對造成負面影響。

您應定期查看這些詞組,因為其中有些詞組可能原本不在代理的範圍內,但後來新增至意圖。

預設負面意圖會影響所有意圖比對。您新增的詞組可能有利於某個意圖的比對,但不利於另一個意圖的比對。舉例來說,您可以將「國際通話」新增至預設排除意圖,避免與國際旅遊意圖比對。不過,這也會導致該詞組無法與國際通話意圖比對。

使用 API 時,您可以透過下列意圖 ID 參照這個意圖:

00000000-0000-0000-0000-000000000001

取消意圖

在對話期間,使用者可能會想取消目前的對話主題。舉例來說,運作頁面可能會要求使用者輸入新預約的日期,但使用者決定不建立新預約。使用者可能會說「取消」或「我不想預約新時段」。如要處理這種情況,您可以為代理建立一或多個取消意圖。您可以視需要為這些取消意圖命名,但通常會在名稱中加入「cancel」。您應將這些取消意圖與意圖路徑建立關聯,這些路徑在對話中的相關點應在範圍內。這些意圖路徑應轉換至適當的頁面,以處理取消作業。

取消意圖的訓練詞組應能處理一般和特定主題的取消嘗試。例如:

  • 取消
  • 停止
  • 我改變心意了
  • 不用了
  • 返回
  • 返回
  • 我不想預約新時段
  • 取消新預約
  • 刪除新預約

建立意圖

如何建立意圖:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 點選「+建立」。
  7. 輸入意圖資料。
  8. 按一下 [儲存]。

API

請參閱 Intent 類型的 create 方法。

選取意圖參照的通訊協定和版本:

通訊協定 V3 V3beta1
REST 意圖資源 意圖資源
RPC Intent 介面 Intent 介面
C++ IntentsClient 不適用
C# IntentsClient 不適用
Go IntentsClient 不適用
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 不適用 不適用
Python IntentsClient IntentsClient
小茹 不適用 不適用

刪除意圖

如何刪除意圖:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 將指標懸停在要刪除的意圖上。
  7. 按一下「刪除」按鈕 。

API

請參閱 Intent 類型的 delete 方法。

選取意圖參照的通訊協定和版本:

通訊協定 V3 V3beta1
REST 意圖資源 意圖資源
RPC Intent 介面 Intent 介面
C++ IntentsClient 不適用
C# IntentsClient 不適用
Go IntentsClient 不適用
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 不適用 不適用
Python IntentsClient IntentsClient
小茹 不適用 不適用

存取意圖資料

意圖資料的存取方法如下:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 按一下要存取的意圖。
  7. 查看或更新意圖資料。
  8. 按一下「儲存」即可儲存變更。

API

請參閱 Intent 類型的 get 和 patch/update 方法。

選取意圖參照的通訊協定和版本:

通訊協定 V3 V3beta1
REST 意圖資源 意圖資源
RPC Intent 介面 Intent 介面
C++ IntentsClient 不適用
C# IntentsClient 不適用
Go IntentsClient 不適用
Java IntentsClient IntentsClient
Node.js IntentsClient IntentsClient
PHP 不適用 不適用
Python IntentsClient IntentsClient
小茹 不適用 不適用

意圖建議

Dialogflow 會自動分析對話期間發生的不相符情況,並建議新的意圖,或為現有意圖推薦其他訓練詞組。接受這些建議有助於避免日後發生不相符的情況。

使用建議時,您可以調整「叢集大小」。叢集大小的值越小,代表意圖越多,但每個意圖的訓練詞組越少。叢集大小值越大,表示意圖越少,但每個意圖的訓練詞組越多。

如要接受意圖建議,請按照下列步驟操作:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 按一下「建議」分頁標籤。
  7. 視需要調整「Cluster Size」(叢集大小)。
  8. 選取建議。
  9. 選取所需的訓練詞組。
  10. 針對目標意圖,將訓練詞組新增至現有或新的意圖。
  11. 按一下「儲存」或「新建」,即可儲存變更。接受意圖建議後,意圖仍會保留在建議清單中。

拆分意圖

您可以使用控制台將一個意圖拆分為兩個意圖。您可以透過介面選取來源意圖中的訓練詞組,並移至新意圖:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 選取要分割的意圖。
  7. 按一下「分割」。
  8. 從來源意圖中選取意圖。
  9. 按一下「向右移」。
  10. 提供目標意圖的其他詳細資料。
  11. 按一下「分割」。

比較及合併意圖

您可以使用控制台比較兩個意圖,或將兩個意圖合併為一個:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 選取要比較或合併的兩個意圖。
  7. 按一下 [Compare] (比較) 。
  8. 訓練詞組會並排顯示,方便比較。
  9. 如要合併這兩個意圖,請按一下「Merge」(合併)。

匯出及匯入意圖

您可以匯出及匯入意圖,在代理之間共用。

CSV 是其中一種匯出格式選項,包含下列資料欄:

  • 意圖顯示名稱
  • 語言
  • 詞組

每個項目都包含顯示名稱、語言和第一個訓練詞組,或僅包含先前宣告意圖的訓練詞組。Dialogflow 會對匯出的訓練詞組中的註解進行編碼,以便在匯入時還原註解。這種編碼的格式如下:

(annotated part)[entity, parameter]

例如:

Intent Display Name,Language,Phrase
Shirt Selection,en,I want a (green)[@sys.color, color] shirt
,,I would like a (yellow)[@sys.color, color] shirt
Store Hours,en,When are you open?
,,What are your hours?

匯入意圖時,如果現有代理程式中的意圖顯示名稱與匯入的意圖相符,可能會發生合併衝突。您可以選取下列其中一個選項,控制意圖顯示名稱相符時的合併行為:

  • 取代現有意圖:匯入的意圖會覆寫現有代理中任何同名的意圖。匯入時覆寫現有意圖,也會覆寫現有實體。
  • 重新命名並匯入為新意圖:系統會在匯入意圖的顯示名稱後方加上「_1」,
  • 與現有意圖合併:匯入意圖的訓練詞組會新增至現有意圖。如果已有相同的訓練詞組,則不會重複。
  • 保留原始意圖:現有意圖維持不變,系統會忽略衝突的意圖。系統會匯入不衝突的意圖。

匯出意圖:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 選取要匯出的意圖。
  7. 按一下「Export selected intents」(匯出所選意圖)。
  8. 選取所需格式和目的地。
  9. 按一下「提交」。

如何匯入意圖:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 按一下「匯入」。
  7. 選取來源。
  8. 如有任何衝突,系統會顯示對話方塊視窗,讓您選取合併行為。
  9. 按一下「提交」。

匯出及匯入訓練詞組

您可以匯出及匯入現有意圖的訓練詞組。

匯入的檔案格式為 CSV,不含欄標題,且只有一欄。 例如:

"I want a pony"
"I need a pony"
"I must have a pony"

匯入訓練詞組時,您可以選擇下列其中一種匯入模式:

  • 匯入為新的訓練詞組:檔案中的詞組會新增至現有詞組清單。
  • 取代現有訓練詞組:刪除現有訓練詞組,並新增檔案中的訓練詞組。

根據預設,系統會自動註解匯入的訓練詞組。如要停用這項行為,請選取「Skip auto annotation」(略過自動註解)。

如要匯出意圖的訓練詞組,請按照下列步驟操作:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 選取一個意圖。
  7. 前往「Training phrases」部分。
  8. 選取要匯出的訓練詞組。
  9. 按一下 [匯出]。

如要匯入意圖的訓練詞組,請按照下列步驟操作:

控制台

  1. 開啟 Dialogflow CX 控制台。
  2. 選擇專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 選取一個意圖。
  7. 前往「Training phrases」部分。
  8. 視需要選取「略過自動註解」。
  9. 按一下訓練詞組清單上方的匯入按鈕。
  10. 選取檔案和匯入模式。
  11. 按一下「提交」。

設計代理時,有時可以將意圖視為「主要意圖」或「補充意圖」。

主要意圖是指使用者與代理互動的主要目的。補充意圖是指使用者與主要意圖相關的後續問題。這些後續問題可能會提供使用者需求的額外背景資訊,也可能是協助使用者釐清或進一步瞭解某個主題的後續問題。

主要意圖通常是對話中第一個比對相符的意圖,而使用者後續的問題則會比對補充意圖。例如:

對話 說明
使用者:啟用新手機
服務專員:沒問題,我很樂意幫忙。你要啟用的電話號碼末 4 碼為何?
比對出主要意圖。
使用者:1234
服務專員:您現在要啟用手機嗎?
已設定參數。
使用者:我的所有訊息都會轉移到新手機嗎?
服務專員: ...
比對出補充意圖。