意圖

意圖可以將使用者在一個對話回合中的意圖歸類。

意圖包含下列資料:

字詞 定義
顯示名稱 顯示在控制台的意圖名稱。
標籤 有助於分類意圖的標籤。例如:head intent
訓練詞組 <0 訓練詞組是指使用者可能會輸入或說出的字詞範例,亦稱為使用者輸入內容。如果使用者輸入內容與其中一個詞組相近,Dialogflow CX 就會將其視為與意圖相符。您無須定義所有可能的範例,因為 Dialogflow CX 內建的機器學習技術會依據其他類似的詞組擴充清單。
參數 您定義的訓練詞組會使用參數,從使用者輸入內容的特定部分擷取值。
DTMF 模式 請參閱「電話整合的 DTMF」。

意圖比對

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

系統會根據 DTMF 模式比對按鍵輸入內容。不過,在搜尋與文字相符的意圖時,Dialogflow CX 會根據意圖偵測信賴度 (也稱為信賴度分數),為可能的相符項目評分。 這些值介於 0.0 (完全不確定) 到 1.0 (完全確定) 之間。意圖評分完成後,可能會出現以下兩種結果:

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

訓練詞組

訓練詞組是指使用者可能會輸入或說出的字詞範例 (亦稱為使用者輸入內容)。您必須針對每個意圖建立許多訓練詞組。如果使用者輸入內容與其中一個詞組相近,Dialogflow CX 就會將其視為與意圖相符。

例如,「I want pizza」(我想吃披薩) 這個訓練詞組可訓練代理程式辨識類似該詞組的使用者輸入內容,例如「Get a pizza」(買披薩) 或「Order pizza」(訂披薩)。

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

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

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

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

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

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

為訓練詞組加註

您可以為訓練詞組的部分內容「加註」,並設定相關聯的參數,藉此控制端點使用者資料的擷取方式。

例如,假設有一個「What is the forecast tomorrow for Tokyo?」(東京明天的天氣預報為何?) 之類的訓練詞組。您應使用 date 參數為「tomorrow」(明天) 加註,並使用 location 參數為「Tokyo」(東京) 加註。當您為訓練詞組的部分內容加註時,Dialogflow CX 會辨識這些部分只是使用者會在執行階段提供的實際值範例。針對「What is the forecast on Friday for Sydney?」(雪梨星期五的天氣預報為何?) 這類的使用者輸入內容,Dialogflow CX 會從「Friday」(星期五) 擷取 date 參數,並從「Sydney」(雪梨) 擷取 location 參數。

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

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

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

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

使用 API 建構代理程式時,您必須手動為訓練詞組的部分內容加註。請參閱 Intent 型別使用的 TrainingPhrase 型別。

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

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

訓練詞組建立的隱含實體

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

預設歡迎意圖

建立代理程式時,系統會為您建立預設歡迎意圖。對於部分語言,意圖會包含「你好」或「哈囉」等簡單的訓練詞組,用來比對使用者一開始輸入的內容。您可以視需要編輯這項意圖。

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

00000000-0000-0000-0000-000000000000

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

預設負面意圖

建立代理程式時,系統會為您建立預設負面意圖。 您可以新增訓練詞組到這個意圖中做為排除範例。 有時,使用者輸入內容可能與標準意圖中的訓練詞組有點類似,但您不希望這類的輸入內容與任何標準意圖配對。

舉例來說,訂房代理程式可能會有「I'd like to book a room」(我想訂房) 這樣的訓練詞組。如果使用者想要購買有關房間的書籍,可能會說「I'd like to buy a book about rooms」(我想買有關房間的書)。為確保使用者輸入內容不會與您的意圖配對,您可以將該詞組新增為負例。

此外,您也應加入超出代理程式範圍的可能詞組,這樣就不會與任何意圖相符。但請避免加入大量這類片語。 舉例來說,如果您定義 10,000 個預設排除意圖詞組,這會對正常意圖比對造成負面影響。

您應定期檢查這些詞組,因為部分詞組可能原本不在代理程式的範圍內,但後來新增至意圖。

預設排除意圖會影響所有意圖比對。 您新增的詞組可能有利於某個意圖的配對,但會對另一個意圖的配對造成負面影響。舉例來說,您可能會在預設排除意圖中加入「國際電話」,避免比對到國際旅遊意圖。不過,這也會導致系統無法將該詞組與國際電話撥打意圖相符。

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

00000000-0000-0000-0000-000000000001

取消意圖

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

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

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

建立意圖

如何建立意圖:

控制台

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

API

請參閱 Intent 類型的 create 方法。

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

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

刪除意圖

如何刪除意圖:

控制台

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

API

請參閱 Intent 類型的 delete 方法。

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

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

存取意圖資料

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

控制台

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

API

請參閱 Intent 類型的 getpatch/update 方法。

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

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

意圖建議

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

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

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

控制台

  1. 開啟 Dialogflow CX 控制台
  2. 選擇 Google Cloud 專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 按一下「建議」分頁標籤。
  7. 視需要調整「叢集大小」
  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. 如要合併這兩個意圖,請按一下「合併」

匯出及匯入意圖

您可以匯出及匯入意圖,以便在不同代理程式之間共用。

匯出格式選項之一是 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. 選擇 Google Cloud 專案。
  3. 選取代理程式。
  4. 選取「管理」分頁標籤。
  5. 點選 [Intents] (意圖)。
  6. 選取要匯出的每個意圖。
  7. 按一下「匯出所選意圖」
  8. 選取所需格式和目的地。
  9. 按一下「提交」

如要匯入意圖:

控制台

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

匯出及匯入訓練詞組

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

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

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

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

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

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

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

控制台

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

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

控制台

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

設計代理程式時,有時可將意圖視為主要意圖補充意圖

主要意圖會識別使用者與代理程式互動的主要目的。補充意圖會識別使用者後續提出的問題,這些問題與主要意圖相關。這些後續問題可能會提供更多背景資訊,瞭解使用者的需求,也可能是後續問題,協助使用者釐清或深入瞭解某件事。

在對話中,系統通常會先比對出主要意圖, 並根據使用者後續提出的問題比對出補充意圖。 例如:

對話 說明
終端使用者:啟用新手機
代理程式:Sure I can help you with that. 你要啟用哪個電話號碼?請輸入該號碼的末 4 碼。
符合主要意圖
使用者:1234
服務專員:你現在可以啟用手機嗎?
已設定參數
使用者:所有訊息都會轉移到新手機嗎?
服務專員:...
比對出補充意圖