使用工作流程建構服務專員

本指南說明如何使用 Dialogflow CX 主控台,透過流程建構及測試簡單的襯衫訂購服務專員。與這位服務專員互動時,你可以詢問商店位置、營業時間,或訂購襯衫。

完成本指南的代理程式會由控制台繪製成圖表,如下所示:

代理程式圖表螢幕截圖

事前準備

閱讀本指南之前,請先完成下列工作:

  1. 請參閱流程基本概念
  2. 執行設定步驟

建立虛擬服務專員

為本指南建立新的代理程式:

  1. 開啟 Dialogflow CX 控制台
  2. 建立或選擇專案。
  3. 按一下「建立服務專員」
  4. 選取「自行建立」
  5. 填寫基本服務專員設定表單:
    1. 你可以選擇任何顯示名稱。
    2. 選取首選位置。如要變更進階位置設定,請按一下「編輯」按鈕。
    3. 選取所需時區。
    4. 選取代理程式的預設語言。
    5. 視需要啟用 Stackdriver Logging。
  6. 按一下 [儲存]

選用代理程式匯入

本指南會逐步引導您建構簡單的襯衫訂購代理。如要略過控制台步驟,您可以下載代理程式匯入

預設流程和意圖

系統會為新服務機器人自動建立以下流程和意圖。如要查看意圖,請依序點選「管理」和「意圖」。按一下「Build」即可查看流程。

字詞 定義
預設歡迎意圖 「Default Welcome Intent」(預設歡迎意圖) 包含「Hi」或「Hello」等簡單的訓練詞組,用於比對使用者最初的輸入內容。您可以視需要編輯這項意圖。
預設負面意圖 您可以使用預設排除意圖,為這個意圖新增訓練詞組做為排除範例。
預設啟動流程 預設啟動流程可做為唯一流程使用。這是本指南唯一會使用的流程。如果是較複雜的代理程式,您可以新增更多流程。這個流程具有預設的意圖路徑,其中「預設歡迎意圖」是意圖需求。

測試預設的歡迎回覆訊息

預設流程和意圖可處理僅含歡迎訊息的基本對話。如要測試新的代理程式,請按照下列步驟操作:

  1. 按一下「Test Agent」按鈕,開啟模擬工具。
  2. 在文字輸入框中輸入 hello,然後按下 Enter 鍵。
  3. 代理程式會回覆預設的歡迎回應。
  4. 關閉模擬器。

模擬工具螢幕截圖

代理程式針對這項使用者輸入內容採取了下列步驟:

  1. 您提供輸入內容時,預設啟動流程是有效流程,而流程的起始頁面是有效頁面。套用至有效流量的每個狀態處理常式都在範圍內,因此代理程式會評估這些處理常式。
  2. 其中一個評估路徑的用意圖需求為「預設歡迎意圖」。您的輸入內容符合這個意圖,因此系統會呼叫路線。
  3. 所呼叫的路徑包含多個執行回應訊息。代理程式隨機選取一個,並將其加入回應佇列
  4. 所呼叫的路徑沒有轉換目標,因此有效的流程和頁面並未變更。
  5. 服務專員回覆了回覆佇列的內容。

編輯歡迎回覆訊息

您可以變更這則歡迎訊息。如要編輯歡迎回覆訊息,請按照下列步驟操作:

  1. 按一下「Build」分頁標籤。
  2. 在「流程」部分中,選取「預設啟動流程」
  3. 按一下圖表中的「Start Page」節點。這是預設啟動流程的起始頁面。
  4. 找出路線,並找出其中的預設歡迎意圖 (意圖需求),然後點選該路線。這會開啟面板,讓您編輯意圖路徑資訊。
  5. 找出「fulfillment」部分,然後在「agent responses」子部分下方刪除所有回應訊息,然後將 Hello, this is a shirt ordering virtual agent. How can I help you? 新增為唯一回應。
  6. 按一下 [儲存]
  7. 關閉路線編輯面板。

服務專員回覆螢幕截圖

測試更新後的歡迎回應訊息

如要測試更新後的回應,請按照下列步驟操作:

  1. 按一下「Test Agent」按鈕,開啟模擬工具。
  2. 在文字輸入框中輸入 hello,然後按下 Enter 鍵。
  3. 代理人會回覆你的新訊息。
  4. 關閉模擬器。

商店地點頁面

您可以將 Conversational Agents (Dialogflow CX) 對話 (工作階段) 描述為狀態機器人,並以圖形呈現。CX 工作階段的狀態會以頁面表示。目前您只有一個網頁,因此這個服務專員不太實用。在本節中,您將建立另一個頁面,用於處理有關商店位置的問題。

建立位置意圖

意圖會將使用者在一個對話回合中的意圖歸類。如要建立在使用者輸入要求商店位置時比對的意圖,請按照下列步驟操作:

  1. 選取「管理」分頁標籤。
  2. 點選 [Intents] (意圖)。
  3. 按一下 [建立]。
  4. 輸入 store.location 做為意圖顯示名稱。
  5. 輸入下列訓練詞組:
    • Where is the store?
    • Directions
    • Tell me the address
    • Where do I pick up my order?
    • How do I get there?
    • Where is the store located?
    • What street are you on?
    • What is your address?
    • How do I get to your store?
    • Where are you located?
  6. 按一下 [儲存]

意圖螢幕截圖

建立地點頁面

接著建立新頁面。您可以為這個頁面新增項目執行結果,只要頁面處於活動狀態就會呼叫。這個項目完成作業應包含提供商店位置的回應訊息。如要建立商店地點頁面,請按照下列步驟操作:

  1. 按一下「Build」分頁標籤。
  2. 在「流程」部分中,選取「預設啟動流程」
  3. 按一下「頁面」部分中的新增 按鈕。系統會顯示網頁顯示名稱的文字輸入欄位。
  4. 輸入 Store Location 做為頁面的顯示名稱,然後按下 Enter 鍵。
  5. 按一下頁面顯示名稱旁的選項 按鈕。
  6. 選取「編輯」,開啟頁面編輯面板。
  7. 找出「完成登錄」,然後按一下「編輯完成登錄」
  8. 按一下「+ 新增對話回應」,然後在「代理程式回應」部分的「代理程式對話」欄位中輸入 Our store is located at 1007 Mountain Drive, Gotham City, NJ.
  9. 按一下 [儲存]
  10. 關閉頁面編輯面板。

網頁螢幕截圖

在流程中新增位置意圖路徑

接下來,您需要建立路徑,將商店地點頁面設為轉場目標。呼叫這個路徑時,工作階段會轉換至商店地點頁面。這個路徑會套用至預設啟動流程,因此只要流程處於啟用狀態,就會在範圍內。對於單一流程的代理程式,這表示路徑一律會在範圍內。在對話的任何時間點,使用者都可以要求商店位置,系統就會呼叫這個路徑。

如要建立這個路徑,請按照下列步驟操作:

  1. 按一下「Build」分頁標籤。
  2. 在「流程」部分中,選取「預設啟動流程」
  3. 按一下圖表中的「Start Page」節點。這是預設啟動流程的起始頁面。
  4. 新增下列意圖路徑:
    • 意圖store.location
    • 轉換頁面Store Location
  5. 按一下 [儲存]
  6. 關閉意圖路徑編輯面板。

意圖路徑螢幕截圖

關閉編輯面板後,您會發現新頁面在圖表上有一個節點。從「Start」節點到「Store Location」節點的箭頭,表示工作階段如何從一個節點轉移到另一個節點。

測試商店位置頁面

如要測試網頁,請按照下列步驟操作:

  1. 按一下「Test Agent」按鈕,開啟模擬工具。
  2. 輸入 What is the store location? 並按下 Enter 鍵。
  3. 服務專員會提供地址。
  4. 關閉模擬器。

代理程式針對使用者輸入內容採取了下列步驟:

  1. 您提供輸入內容時,預設啟動流程是有效流程,而流程的起始頁面是有效頁面。套用至有效流量的每個狀態處理常式都在範圍內,因此代理程式會評估這些處理常式。
  2. 其中一個評估路徑的動機要求為 store.location。您的輸入內容符合這個意圖,因此系統會呼叫路線。
  3. 所呼叫的路徑沒有執行回應訊息,因此不會向回應佇列新增任何內容。
  4. 已呼叫的路徑含有轉換目標,因此有效頁面會變更為「商店位置」頁面。
  5. 「Store Location」頁面有一個項目執行要求,因此系統會將執行要求的回應訊息加入回應佇列 (地址)。
  6. 服務專員回覆了回覆佇列的內容。

使用內嵌建立功能建立的營業時間頁面

在本節中,您將建立「Store Hours」頁面,用於處理有關營業時間的使用者問題。在先前的章節中,您已透過「Build」和「Manage」分頁建立頁面和意圖。本節將說明如何透過內嵌建立功能,以更快速的方式建立這些類型。

如要內嵌建立意圖路徑、意圖和頁面,請按照下列步驟操作:

  1. 按一下圖表中的「Start Page」節點。
  2. 按一下「路線」旁的 「新增」。意圖路徑編輯面板隨即開啟。
  3. 在「意圖」部分中,選取「新增意圖」。意圖編輯面板隨即開啟。
  4. 使用下列訓練詞組建立 store.hours 意圖:

    • What are your store hours?
    • What time do you close?
  5. 按一下「儲存」即可儲存意圖。意圖編輯面板會關閉。

  6. 向下捲動至路線編輯面板中的「轉場」部分。

  7. 在「Page」轉場效果中,選取「New page」

  8. 在隨即顯示的文字輸入框中輸入 Store Hours

  9. 按一下「儲存」。 由於現在有可導向新頁面的轉場效果,因此新頁面會顯示在圖表中。

  10. 關閉路線編輯面板。

  11. 新增提供營業時間的項目,類似於商店地點的步驟。

  12. 關閉所有已開啟的編輯面板。

訂單商品頁面

接下來,您將建立使用表單參數的頁面。當使用者要求新上衣訂單時,工作階段就會轉換至這個頁面。啟用後,這個頁面會收集上衣訂單的尺寸和顏色。

建立上衣尺寸的自訂實體類型

實體類型可用於控制從使用者輸入內容中擷取資料的方式。Conversational Agents (Dialogflow CX) 提供預先定義的系統實體,可比對許多常見的資料類型。舉例來說,您可以使用系統實體來比對日期、時間、顏色、電子郵件地址等。您也可以自行建立自訂實體,用於比對自訂資料。

對於這個代理程式,您可以使用系統實體來處理襯衫顏色,但需要為襯衫尺寸建立自訂實體。尺寸實體類型應包含下列實體項目:

實體 同義詞
S 號 small, tiny, little
中等、一般、平均
large large、big、giant

如要建立這個實體,請按照下列步驟操作:

  1. 選取「管理」分頁標籤。
  2. 按一下「實體類型」
  3. 點選「+建立」
  4. 將顯示名稱設為 size
  5. 新增上表所列的實體項目。
  6. 按一下 [儲存]

使用意圖參數建立訂單意圖

當使用者要求訂購新上衣時,您需要比對意圖。這個意圖也應視情況擷取使用者提供的所需上衣顏色和/或尺寸,以防他們先行提供這類資訊。

參數可用來擷取及參照使用者在工作階段期間提供的值。每個參數都有顯示名稱和實體類型。不同於使用者輸入的原始內容,參數是結構化資料,可輕鬆用於執行某些邏輯或產生回應。

您可以為訓練詞組的部分內容加註,並設定相關聯的意圖參數,藉此控制意圖比對功能擷取使用者資料的方式。例如,假設有一個「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 參數。

如要使用主控台為訓練詞組加註,請按照下列步驟操作:

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

建立意圖時,請按照上述步驟操作。將此意圖命名為 order.new。針對每個含有顏色的詞組,請使用 color 參數和 @sys.color 系統實體類型加註顏色。針對每個包含襯衫尺寸的詞組,請使用 size 參數和先前步驟中建立的 @size 自訂實體類型加註尺寸。訓練詞組和參數應類似以下內容:

意圖螢幕截圖

建立訂單頁面

按照與先前步驟類似的步驟建立新訂單頁面:

  • 顯示名稱:New Order
  • 項目填入:Ok, let's start a new order.

在訂購頁面中加入表單

您可以為每個網頁定義表單,也就是從網頁的使用者收集的參數清單。代理程式會與使用者進行多次對話,直到收集到所有必要的表單參數 (也稱為頁面參數) 為止。針對每個表單參數,您也必須提供提示,讓代理程式用於向使用者索取該資訊。這個過程稱為「表單填充」

當使用者為意圖比對提供意圖參數時,意圖參數就會變成工作階段參數。當網頁首次啟用時,所有表單參數都會預先填入任何同名的工作階段參數。因此,如果在比對 order.new 意圖時,使用者提供尺寸或顏色,系統就會自動在表單中填入這些值。

針對新訂單頁面,您需要定義兩個必要表單參數:

必填 顯示名稱 實體類型 是否為清單 提示
color @sys.color 你想要什麼顏色?
大小 @size 你要哪個尺寸?

如要新增這份表單,請按照下列步驟操作:

  1. 按一下圖表中的「New Order」頁面。
  2. 按一下「參數」新增 按鈕。參數編輯面板隨即開啟。
  3. 按照上表所述新增參數。
  4. 按一下 [儲存]
  5. 關閉參數編輯面板。

在流程中新增訂單意圖路徑

與您在上述步驟中所做的操作類似,請將路徑新增至預設啟動流程。當使用者想要下新訂單時,應呼叫這個路徑:

  • 意圖:order.new
  • 轉換目標頁面:New Order

確認頁面

最終頁面只會確認訂單並結束工作階段。

建立確認頁面

建立確認頁面,並使用會使用工作階段參數確認訂單的回應:

  • 顯示名稱:Order Confirmation
  • 項目填入:You can pick up your order for a $session.params.size $session.params.color shirt in 7 to 10 business days. Goodbye.

在訂單頁面中新增條件路徑

您也可以使用條件來判斷是否呼叫路徑。條件通常用於檢查表單是否完整,或是在評估時一律會呼叫。

如要在主控台中設定條件,請參閱「設定條件」說明文件。

將下列路徑新增至訂單頁面,系統會在填寫訂單頁面表單時呼叫此路徑。請注意,這個條件路徑如何在向使用者回應時使用參數參照,以及如何將工作階段轉換至「訂單確認」頁面。

  • 條件$page.params.status = "FINAL"
  • Agent SaysYou have selected a $session.params.size, $session.params.color shirt.
  • 轉換頁面Order Confirmation

將下列路徑新增至訂單頁面,系統會在每個會話輪次中呼叫該路徑,其中該頁面處於啟用狀態,且會評估條件路徑。評估並呼叫上述條件後,頁面會變為非活動狀態,因此不會評估這個 true 條件路徑:

  • 條件true
  • Agent SaysI'd like to collect a bit more information from you.

建立條件路徑以結束工作階段

將下列條件路由新增至「確認訂單」頁面,在該頁面啟用並處理其項目完成情況後結束工作階段:

  • 條件true
  • 轉場目標頁面End Session

測試完成的服務專員

請使用以下對話測試代理程式:

對話 說明
使用者:你好
服務專員:你好,我是負責處理訂購 T 恤的虛擬服務專員。 我能為你提供哪些協助?
  1. 系統會呼叫預設開始流程中的「Default Welcome Intent」路徑。
  2. 這個狀態處理常式 (「Hello, this...」) 的執行結果 已加入回應佇列。
  3. 代理程式會將回應佇列傳送給使用者。
使用者:我想買一件藍色襯衫
服務專員:好的,我們來建立新訂單。
服務專員:我想向你收集更多資訊。
代理程式:你要什麼尺寸?
  1. 系統會評估預設啟動流程中的 order.new 意圖路徑。
  2. 系統會比對 order.new 意圖,並將 color 意圖參數設為「blue」。
  3. 工作階段會轉換至「New Order」頁面,而「color」意圖參數會變成工作階段參數。
  4. 「New Order」頁面有一個條件式輸入內容 (「Ok, let's start...」),因此會加入回應佇列。
  5. color 工作階段參數用於填入同名的表單參數。
  6. 系統會評估並呼叫「New Order」頁面中的 true 條件路徑。其中包含回應訊息 (「I'd like to collect..."), 因此會加入回應佇列。
  7. 網頁的表單未填寫,因此服務專員使用尺寸提示訊息 (「What size...」) 並將其加入回應佇列。
  8. 代理程式會將回應佇列傳送給使用者。
使用者:large
代理人:你選的是藍色大尺寸的襯衫。
服務專員:你訂購的藍色大號上衣會在 7 到 10 個工作天內送達,再見。
  1. 使用者輸入內容會填入代理程式在先前對話輪次中要求的 size 參數。
  2. 系統會評估並呼叫「New Order」頁面中的表單完成路徑。它具有執行要求 (「You have selected...」),會新增至回應佇列,並將參數參照解析為使用者提供的實際值。
  3. 工作階段會轉換至「Order Confirmation」頁面。
  4. 「Order Confirmation」頁面有一個輸入完成內容 (「You can pick up...」),會新增至回應佇列。
  5. 代理程式會將回應佇列傳送給使用者。
  6. 工作階段會轉換為「End Session」

正式化

在實際工作環境中執行服務前,請務必實作實際工作環境最佳做法