本文說明使用 Dialogflow CX 流程建構代理的基本概念。概略說明最重要的概念。
代理
Dialogflow CX 代理是虛擬代理,可同時處理多組使用者對話。這種自然語言理解模型可以解讀人類語言的細微差異。Dialogflow CX 會將使用者在對話期間提供的文字或音訊內容,轉譯為應用程式與服務可解讀的結構化資料。您可以設計並建構 Dialogflow CX 代理,處理系統所需的對話類型。
Dialogflow CX 代理就像是客服中心的真人客服專員,兩者都需要接受訓練,才能處理預期的對話情境,而且訓練不必過於明確。
流量數
複雜的對話通常涉及多個對話主題。舉例來說,披薩外送代理可能會將訂餐、客戶資訊和確認事項視為不同的主題。代理必須經過多輪對話,才能從使用者取得每個主題的相關資訊。
流程可用於定義這些主題和相關的對話路徑。每個代理都有一個名為 Default Start Flow 的流程。簡單的代理可能只需要這一個流程就能運作,較複雜的代理則或許需要額外流程,而不同的開發團隊成員會負責建構及維護這些流程。舉例來說,披薩外送服務代理的流程可能如下所示:網頁
Dialogflow CX 對話 (工作階段) 可透過狀態機器描述和呈現。工作階段的狀態是以頁面呈現。
每個流程可定義多個頁面,頁面合併後,就能處理對話流程設計主題的完整對話。在任一時間點,只有一個頁面是「目前頁面」,目前頁面會視為「有效」,與該頁面相關聯的流程也視為「有效」。每個流程都有專屬的開始頁面。流程首次啟用時,開始頁面會成為目前頁面。在每個對話回合,目前頁面會維持不變或轉換至其他頁面。
您可以設定每個頁面,向使用者收集與該頁面代表的對話狀態相關的資訊。舉例來說,您可以為披薩外送服務代理的訂餐流程建立下圖中的頁面 (藍色)。圖表的「Start」節點代表「訂餐」流程的開始頁面。流程完成後,會轉換為「確認」流程。
實體類型
實體類型用於控管如何從使用者輸入內容擷取資料。Dialogflow CX 提供預先定義的系統實體,可比對多種常見的資料類型。舉例來說,系統實體可用於比對日期、時間、顏色、電子郵件地址等。您也可以建立自己的自訂實體,用於比對自訂資料。舉例來說,您可以定義蔬菜實體,比對雜貨店代理可購買的蔬菜類型。
參數
參數可用來擷取及參照使用者在工作階段中提供的值。每個參數都有名稱和實體類型。不同於使用者輸入的原始內容,參數是結構化資料,可輕鬆用於執行某些邏輯或生成回覆。表單
您可以為每個頁面定義表單,也就是應從使用者收集的參數清單。代理會與使用者進行多輪對話,直到收集到所有必要的表單參數 (也稱為頁面參數)。代理會按照頁面定義的順序收集這些參數。針對每個必要表單參數,您也需要提供提示,讓代理向使用者要求該資訊。這項程序稱為表單填寫。
舉例來說,您可以建立表單,收集 Collect Customer Info 頁面使用者的姓名和電話號碼。
意圖
意圖會將使用者在一輪對話中的意圖分類。
意圖包含下列資料:
| 字詞 | 定義 |
|---|---|
| 顯示名稱 | 控制台顯示的意圖名稱。 |
| 標籤 | 用於分類意圖的標籤。例如:主要意圖。 |
| 訓練詞組 | 訓練詞組是使用者可能輸入或說出的範例詞組,稱為使用者輸入內容。當使用者輸入的內容與其中一個詞組相似時,Dialogflow CX 就會比對意圖。您不必定義所有可能的範例,因為 Dialogflow CX 內建的機器學習功能會使用其他類似詞組擴充清單。 |
| 參數 | 您可以定義訓練詞組,使用參數從使用者輸入內容的特定部分擷取值。 |
| DTMF 模式 | 請參閱「電話整合的 DTMF」。 |
Webhook
Webhook 是託管商業邏輯或呼叫其他服務的服務。在工作階段期間,Webhook 可讓您使用 Dialogflow CX 自然語言處理功能擷取的資料,生成動態回覆、驗證收集到的資料,或在後端觸發動作。Webhook 可以是標準 Webhook 或彈性 Webhook。使用標準 Webhook 時,要求和回應欄位是由 Dialogflow CX 定義。使用彈性 Webhook 時,您需要定義要求和回應欄位。
Fulfillment
在代理的對話回合中,代理必須回答使用者的問題、查詢資訊或終止工作階段。代理也可能需要與您的服務聯絡,才能產生動態回覆或採取行動。執行 可用於完成所有這些操作。
出貨可能包含下列任一項:
- 靜態回應訊息。
- Webhook 呼叫,用於動態回覆和/或採取行動。
- 參數預設值,用於設定或覆寫參數值。
在代理的回合中,可以 (有時也建議) 呼叫多個 fulfillment,每個 fulfillment 都可能產生回覆訊息。Dialogflow CX 會將這些回應保留在回應佇列中。代理的回合結束後,Dialogflow CX 會將排序後的回覆傳送給使用者。
狀態處理常式
狀態處理常式 (也簡稱處理常式) 可控管對話,包括生成給使用者的回覆,以及/或是轉換目前頁面。系統會評估每個對話回合的處理常式,這可能會影響工作階段。處理常式通常有三種資料類型:| 字詞 | 定義 |
|---|---|
| 處理常式需求條件 | 必須滿足這些條件,處理常式才會對工作階段產生任何影響。如果處理常式符合條件,並以某種方式影響工作階段,系統就會呼叫該處理常式。 |
| 處理常式執行要求 | 如果呼叫處理常式,系統會使用選用的執行要求,為使用者建立回覆。這些回覆可能定義於靜態代理資料,或從 Webhook 服務動態擷取。 |
| 處理常式轉換目標 | 如果呼叫處理常式,系統會使用選用的轉換目標來變更目前頁面。下一頁只能是流程開始頁面,或目前有效流程中的頁面。 |
狀態處理常式分為兩種類型,處理常式需求各有不同:
| 字詞 | 定義 |
|---|---|
| Routes | 當使用者輸入內容與意圖相符,且/或符合工作階段狀態的某些條件時,系統就會呼叫路徑。具有意圖要求的路徑也稱為「意圖路徑」。只有條件要求的路徑也稱為「條件路徑」。 |
| 事件處理常式 | 叫用事件時,系統會呼叫事件處理常式。收到非預期的使用者輸入內容,或發生 Webhook 錯誤時,系統會觸發部分內建事件。您也可以定義自訂事件,在對話以外的情況發生時叫用。 |
處理狀態處理常式有三個步驟:
| 字詞 | 定義 |
|---|---|
| 1. 範圍 | 處理常式必須在範圍內,才能對工作階段產生任何影響。範圍取決於處理常式是否套用至流程、頁面或表單參數,以及相關聯的流程是否有效、相關聯的頁面是否有效,或代理目前是否嘗試填寫相關聯的表單參數。 |
| 2. 評估 | 系統會依序評估範圍內的每個處理常式。如果符合處理常式的要求,就會通過評估。 |
| 3. 撥打電話 | 如果處理常式在範圍內且通過評估,就會受到呼叫。系統會呼叫所有相關的執行要求,並將所有相關的轉換目標套用至工作階段。 |
區域規劃與位置設定
建立代理時,必須指定區域做為代理的位置。傳送至代理的要求會由該區域的 Google 服務處理,且 Dialogflow CX 會將靜態資料實際保留在該地理區域或位置。為達到最佳效能,請選擇靠近服務和使用者的區域。
代理建立後,就無法變更位置。如要變更代理的位置,您必須匯出並還原至位置不同的新代理。
每個位置都有相關聯的設定,會套用至整個專案。在多數情況下,您不需要編輯這些位置資訊設定,預設設定就能正常運作。如果系統需要客戶自行管理的加密金鑰 (通常是政府機關或受管制產業的要求),請參閱位置資訊設定。
控制台
Dialogflow 控制台是以使用者介面呈現,可讓您直覺地建立互動式代理,使用生成式代理應對手冊、生成式資料儲存庫和確定性流程。
整合
Dialogflow CX 提供多項內建整合功能,可與其他對話平台搭配使用。這些整合項目會為使用者提供使用者介面,並為您呼叫 API。您只需要建構代理,並視需要實作 Webhook 服務。每項整合功能都會以平台專屬的方式處理互動,詳情請參閱特定整合功能的說明文件。
互動
每次對話都會發生互動。在互動期間,使用者會將輸入內容傳送至 Dialogflow CX,而 Dialogflow CX 則會傳送回覆。導入系統來處理互動時,有兩種做法:使用 API 或使用整合功能。
使用 API 時,系統需要處理下列事項:
- 建構代理。
- 為使用者提供使用者介面。
- 在每個對話輪次呼叫 Dialogflow API,將使用者輸入內容傳送至 API。
- 除非代理回覆完全是靜態 (不常見),否則您需要託管 Webhook 服務,才能處理已啟用 Webhook 的執行要求。
使用整合時,系統只需要處理下列事項:
- 建構代理。
- 視需要實作 Webhook 服務。
下圖顯示工作階段中一個對話回合的步驟。
- 使用者輸入或說出內容,稱為「使用者輸入內容」。
- 使用者介面或整合系統會接收輸入內容,並在意圖偵測要求中將其轉送至 Dialogflow API。
- Dialogflow API 收到偵測意圖要求。比對輸入內容與意圖或表單參數,視需要設定參數,並更新工作階段狀態。如果需要呼叫已啟用 Webhook 的執行要求,則會將 Webhook 要求傳送至 Webhook 服務,否則請前往步驟 6。
- Webhook 服務收到 Webhook 要求。您的服務會採取任何必要動作,例如呼叫外部 API、查詢或更新資料庫等。
- Webhook 服務會建立回應,並將 Webhook 回應傳回 Dialogflow CX。
- Dialogflow CX 會建立偵測意圖回應。如果呼叫了 Webhook,則會使用 Webhook 回應中提供的回應。如果未呼叫任何 Webhook,則會使用代理中定義的靜態回覆。Dialogflow CX 會將偵測意圖回應傳送至使用者介面或整合系統。
- 使用者介面或整合系統收到偵測意圖回應,並將文字或音訊回應轉送給使用者。
- 使用者看到或聽到回應。