意圖:將使用者在一個對話回合中的意圖歸類。
意圖包含下列資料:
字詞 | 定義 |
---|---|
顯示名稱 | 意圖在主控台中顯示的名稱。 |
標籤 | 有助於將意圖分類的標籤。例如:head intent。 |
訓練詞組 | 訓練詞組是指使用者可能會輸入或說出的字詞範例 (亦稱為使用者輸入內容)。如果使用者輸入內容與其中一個詞組相近,Conversational Agents (Dialogflow CX) 就會將其視為與意圖相符。您無須定義所有可能的範例,因為 Conversational Agents (Dialogflow CX) 內建的機器學習技術會依據其他類似的詞組擴充清單。 |
參數 | 您可以定義要使用的訓練詞組,以參數擷取使用者輸入內容的特定部分。 |
DTMF 模式 | 請參閱「電話整合的 DTMF」。 |
意圖比對
當使用者輸入內容 (文字、語音或電話按鍵) 時,Conversational Agents (Dialogflow CX) 會將輸入內容與意圖訓練詞組進行比對,找出最相符的內容。這項程序稱為意圖比對。意圖比對只會針對與範圍中意圖路徑相關的意圖進行。意圖路徑是指具有意圖需求的狀態處理常式。
按鍵輸入內容會根據 DTMF 模式進行比對。不過,當您搜尋與文字相符的意圖時,Conversational Agents (Dialogflow CX) 會使用意圖偵測可信度 (也稱為可信度分數) 為潛在相符項目評分。這些值的範圍為 0.0 (完全不確定) 到 1.0 (完全確定)。意圖評分後,可能會產生以下兩種結果:
訓練詞組
訓練詞組是指使用者可能會輸入或說出的字詞範例 (亦稱為使用者輸入內容)。您必須針對每個意圖建立許多訓練詞組。如果使用者輸入內容與其中一個詞組相近,Conversational Agents (Dialogflow CX) 就會將其視為與意圖相符。
例如,「I want pizza」(我想吃披薩) 這個訓練詞組可訓練代理程式辨識類似該詞組的使用者輸入內容,例如「Get a pizza」(買披薩) 或「Order pizza」(訂披薩)。
您無須定義所有可能的範例,因為 Conversational Agents (Dialogflow CX) 內建的機器學習技術會依據其他類似的詞組擴充清單。您至少應建立 10 到 20 個訓練詞組 (視意圖複雜度而定),讓代理程式可辨識各種使用者輸入內容。舉例來說,如果您想讓意圖識別使用者關於自己最喜歡顏色的輸入內容,可以定義下列訓練詞組:
- 「I like red」(我喜歡紅色)
- 「My favorite color is yellow」(我最喜歡的顏色是黃色)
- 「black」(黑色)
- 「Blue is my favorite」(我最愛藍色)
- ...
自動產生及翻譯訓練詞組
您可以選擇使用 AI 產生功能自動產生訓練字詞,而非手動輸入。如何使用這項功能:
- 前往「管理」分頁,然後按一下「意圖」。選擇現有意圖,或按一下「+ 建立」來建立新意圖。
- 請務必在「說明」欄位中輸入意圖的用途,例如「當使用者詢問訂單狀態時,系統會觸發此意圖」。AI 產生器會使用這個欄位產生更準確的訓練詞組。
- 按一下「__ 新 AI 產生的短語」圓形按鈕。預設值為 3。一次產生超過 15 個訓練詞組可能會導致錯誤。
- 按一下「+ 新增」。AI 會產生您指定數量的訓練字詞,並填入表格。請務必檢查所有產生的訓練字詞是否正確無誤。
如要瞭解如何使用這項功能自動產生及翻譯非預設語言的資料,請參閱多語言服務機器人說明文件
為訓練詞組加註
您可以為訓練詞組的部分內容加註,並設定相關聯的參數,藉此控制資料的擷取方式。
例如,假設有一個「What is the forecast tomorrow for Tokyo?」(東京明天的天氣預報為何?) 之類的訓練詞組。您應使用 date
參數為「tomorrow」(明天) 加註,並使用 location
參數為「Tokyo」(東京) 加註。當您為訓練詞組的部分內容加註時,Conversational Agents (Dialogflow CX) 會辨識這些部分只是使用者會在執行階段提供的實際值範例。針對「What is the forecast on Friday for Sydney?」(雪梨星期五的天氣預報為何?) 這類的使用者輸入內容,Conversational Agents (Dialogflow CX) 會從「Friday」(星期五) 擷取 date
參數,並從「Sydney」(雪梨) 擷取 location
參數。
您必須為所有要擷取為參數的訓練詞組部分加上註解。否則 Dialogflow 不會擷取值。
使用主控台建構代理程式時,如果您新增的訓練詞組包含可對應到現有實體類型的部分,系統就會自動為您建立大多數的註解。系統會在主控台中醒目顯示這些部分。您可以視需要編輯這些註解和參數。
如要使用主控台手動為訓練詞組加註:
- 選取要為訓練詞組加註的部分。
- 從清單中選取所需的實體類型。
- 系統會在下方的參數表中為您建立參數。
使用 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 | 不適用 | 不適用 |
由訓練詞組建立的隱含實體
大部分的自訂實體都是透過建立實體類型和新增實體項目來明確定義。不過,自訂實體也可能包含隱含值。發生這種情況的原因是您為訓練詞組的文字加註,但所加註的文字並非所選實體類型定義的值。註解文字會成為隱含新增的實體項目實體參照值。如果實體類型是地圖實體,文字也會成為實體項目的同義詞。
預設歡迎意圖
建立代理程式時,系統會為您建立預設歡迎意圖。在某些語言中,意圖會提供「Hi」或「Hello」等簡單訓練詞組,以便與使用者最初的輸入內容相符。您可以視需要編輯這項意圖。
使用 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
值。
預設負面意圖
建立代理程式時,系統會為您建立預設排除意圖。您可以將訓練詞組新增至這個意圖,做為負面例子。有時,使用者輸入內容可能與標準意圖中的訓練詞組有點類似,但您不希望這類輸入內容與任何標準意圖配對。
例如,訂房服務代理程式可能會有「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」。您應將這些取消意圖與對話中相關點範圍內的意圖路徑建立關聯。這些意圖路徑應轉換至適當的頁面,以便處理取消作業。
取消意圖的訓練詞組應處理一般和主題特定的取消嘗試。例如:
- 取消
- 停止
- 我改變心意了
- 不用了,謝謝
- 返回
- 返回
- 我不想預約新的預約
- 取消新預約
- 刪除新的預約
建立意圖
如何建立意圖:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 點選「+建立」。
- 輸入意圖資料。
- 按一下 [儲存]。
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 | 不適用 | 不適用 |
刪除意圖
如何刪除意圖:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 將滑鼠游標懸停在要刪除的意圖上。
- 按一下刪除 delete 按鈕。
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 | 不適用 | 不適用 |
存取意圖資料
意圖資料的存取方法如下:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 按一下要存取的意圖。
- 查看或更新意圖資料。
- 按一下「儲存」即可儲存變更。
API
請參閱 Intent
類型的 get
和 patch/update
方法。
選取意圖參照項目的通訊協定和版本:
通訊協定 | V3 | V3beta1 |
---|---|---|
REST | 意圖資源 | 意圖資源 |
RPC | 意圖介面 | 意圖介面 |
C++ | IntentsClient | 不適用 |
C# | IntentsClient | 不適用 |
Go | IntentsClient | 不適用 |
Java | IntentsClient | IntentsClient |
Node.js | IntentsClient | IntentsClient |
PHP | 不適用 | 不適用 |
Python | IntentsClient | IntentsClient |
Ruby | 不適用 | 不適用 |
意圖建議
Dialogflow 會自動分析對話中不相符的事件,並可為現有意圖建議新的意圖或其他訓練詞組。接受這些建議有助於避免日後發生不相符的情況。
使用建議時,您可以調整叢集大小。叢集大小值越小,代表意圖越多,且每個意圖的訓練詞組越少。叢集大小值越大,表示意圖越少,且每個意圖的訓練詞組越多。
如要接受意圖建議,請按照下列步驟操作:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 按一下「建議」分頁標籤。
- 視需要調整「叢集大小」。
- 選取建議的內容。
- 選取所需的訓練詞組。
- 針對目標意圖,將訓練詞組新增至現有或新的意圖。
- 按一下「儲存」或「建立新檔案」即可儲存變更。接受意圖建議後,意圖會保留在建議清單中。
分割意圖
您可以使用控制台將一個意圖拆分為兩個意圖。這個介面可讓您從來源意圖選取訓練詞組,並將其移至新意圖:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 選取要拆分的意圖。
- 按一下「分割」。
- 從來源意圖中選取意圖。
- 按一下「向右移動」。
- 提供目標意圖的其他詳細資料。
- 按一下「分割」。
比較及合併意圖
您可以使用控制台比較或合併兩個意圖,以便建立單一意圖:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 選取要比較或合併的兩個意圖。
- 按一下 [Compare] (比較) 。
- 訓練短句會並排顯示,方便比較。
- 如要合併這兩個意圖,請按一下「合併」。
匯出及匯入意圖
您可以匯出及匯入意圖,以便在各個服務機器人之間共用。
匯出格式選項之一是 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」附加至顯示名稱,即可重新命名匯入的意圖。
- 與現有意圖合併:匯入的意圖的訓練詞組會新增至現有意圖。如果有相同的訓練詞組,系統不會重複建立。
- 保留原始意圖:現有意圖保持不變,系統會忽略發生衝突的意圖。匯入不會造成衝突的意圖。
如何匯出意圖:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 選取要匯出的意圖。
- 按一下「匯出所選意圖」。
- 選取所需格式和目的地。
- 按一下「提交」。
如何匯入意圖:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 按一下「匯入」。
- 選取來源。
- 如果發生任何衝突,系統會顯示對話方塊視窗,讓您選取合併行為。
- 按一下「提交」。
匯出及匯入訓練詞組
您可以匯出及匯入現有意圖的訓練詞組。
匯入檔案格式為 CSV,且不含欄標題和單一欄。例如:
"I want a pony"
"I need a pony"
"I must have a pony"
匯入訓練字詞時,您可以選擇下列其中一種匯入模式:
- 匯入為新的訓練詞組:將檔案中的詞組新增至現有詞組清單。
- 取代現有訓練詞組:刪除現有訓練詞組,並新增檔案中的訓練詞組。
根據預設,系統會自動標註匯入的訓練詞組。如要停用這項行為,請選取「略過自動註解」。
如要匯出意圖的訓練詞組,請按照下列步驟操作:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 選取一個意圖。
- 向下捲動至「Training phrases」(訓練詞組) 區段。
- 選取要匯出的訓練詞組。
- 按一下 [匯出]。
如要匯入意圖的訓練詞組,請按照下列步驟操作:
主控台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 選取「管理」分頁標籤。
- 點選 [Intents] (意圖)。
- 選取一個意圖。
- 向下捲動至「Training phrases」(訓練詞組) 區段。
- 如有需要,請選取「略過自動註解」。
- 按一下訓練字詞清單上方的匯入按鈕。
- 選取檔案和匯入模式。
- 按一下「提交」。
主意圖和補充意圖
設計對話方塊時,有時會將意圖視為主要意圖或輔助意圖。
主意圖可識別使用者與服務專員互動的首要目的。補充意圖可識別使用者與主意圖相關的後續問題。這些後續問題可能會提供其他背景資訊,以滿足使用者的需求,或是後續問題,協助使用者釐清或進一步瞭解某些內容。
主要意圖通常是對話中比對的第一個意圖,而後續使用者問題則會比對輔助意圖。例如:
對話 | 說明 |
---|---|
使用者:啟用新手機 代理程式:沒問題,我可以協助你。請問你要啟用的電話號碼末 4 碼為何? |
已比對到主意圖 |
使用者:1234 服務專員:你現在可以啟用手機了嗎? |
已設定參數 |
使用者:我的所有訊息都會轉移到新手機嗎? 服務專員:... |
已比對補充意圖 |