流程型代理程式基本概念

本文說明使用 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 服務。

下圖顯示工作階段中一個對話回合的步驟。

API 流程圖。

  1. 使用者輸入或說出內容,稱為「使用者輸入內容」。
  2. 使用者介面或整合系統會接收輸入內容,並在意圖偵測要求中將其轉送至 Dialogflow API。
  3. Dialogflow API 收到偵測意圖要求。比對輸入內容與意圖或表單參數,視需要設定參數,並更新工作階段狀態。如果需要呼叫已啟用 Webhook 的執行要求,則會將 Webhook 要求傳送至 Webhook 服務,否則請前往步驟 6。
  4. Webhook 服務收到 Webhook 要求。您的服務會採取任何必要動作,例如呼叫外部 API、查詢或更新資料庫等。
  5. Webhook 服務會建立回應,並將 Webhook 回應傳回 Dialogflow CX。
  6. Dialogflow CX 會建立偵測意圖回應。如果呼叫了 Webhook,則會使用 Webhook 回應中提供的回應。如果未呼叫任何 Webhook,則會使用代理中定義的靜態回覆。Dialogflow CX 會將偵測意圖回應傳送至使用者介面或整合系統。
  7. 使用者介面或整合系統收到偵測意圖回應,並將文字或音訊回應轉送給使用者。
  8. 使用者看到或聽到回應。