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

本指南說明如何使用 Dialogflow CX 控制台,透過流程建構及測試襯衫訂購代理。與這個代理互動時,可以詢問商店位置、營業時間或訂購襯衫。

下圖顯示本指南完成的代理:

代理圖表螢幕截圖

事前準備

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

建立虛擬服務專員

為本指南建立代理:

  1. 開啟 Dialogflow CX 控制台。
  2. 建立或選擇專案。
  3. 點選「建立代理」。
  4. 選取「自行建立」。
  5. 填寫表單,進行基本代理設定:
    1. 請輸入顯示名稱。
    2. 選取位置。如要變更進階位置資訊設定,請按一下「Edit」(編輯) 按鈕。
    3. 選取時區。
    4. 選取預設語言。
    5. 視需要啟用 Cloud Logging。
  6. 按一下 [儲存]。

選用代理匯入

本指南將逐步說明如何建構襯衫訂購代理。

如要略過控制台步驟,請下載代理並匯入。

預設流程和意圖

系統會自動為新代理建立下列流程和意圖。

如要查看意圖,請依序點選「Manage」(管理) 和「Intents」(意圖)。如要查看流程,請點選「Build」(建構)。

X 項目
預設歡迎意圖 預設歡迎意圖包含「嗨」或「您好」等訓練詞組,用於比對使用者一開始輸入的內容。您可以視需要編輯這個意圖。
預設負面意圖 您可以使用預設排除意圖,將訓練詞組新增至這個意圖,做為負面範例。
Default Start Flow Default Start Flow 可做為唯一的流程。這是本指南中唯一會使用的流程。如果是較複雜的代理,可以新增更多流程。這個流程有預設的意圖路徑,並以「Default Welcome Intent」做為意圖需求。

測試預設歡迎回覆訊息

預設流程和意圖可以處理基本對話,但只能傳送歡迎訊息。

如要測試新代理,請按照下列步驟操作:

  1. 點選「Test Agent」按鈕,開啟模擬工具。
  2. 在文字欄位中輸入 hello,然後按下 Enter 鍵。
  3. 代理會回覆預設歡迎訊息。
  4. 關閉模擬器。

模擬工具螢幕截圖

代理會針對這項使用者輸入內容執行下列步驟:

  1. 提供輸入內容時,代理會評估有效預設開始流程和流程開始頁面範圍內的狀態處理常式。
  2. 代理會找出與「Default Welcome Intent」相符的路徑並執行。
  3. 代理會隨機選取其中一則執行要求回覆訊息,並新增至回覆佇列。
  4. 由於路徑沒有轉換目標,因此使用中的流程和頁面會維持不變。
  5. 代理將回覆佇列的內容傳送給您。

編輯歡迎回覆訊息

如要編輯歡迎回覆訊息,請按照下列步驟操作:

  1. 按一下「Build」分頁標籤。
  2. 在「Flows」部分,選取「Default Start Flow」。
  3. 按一下圖表中的「Start Page」節點。
  4. 找出意圖需求為「Default Welcome Intent」的路徑,然後點選該路徑,開啟路徑編輯面板。
  5. 在「fulfillment」部分的「agent responses」子部分中,刪除所有現有的回覆訊息。
  6. 新增 Hello, this is a shirt ordering virtual agent. How can I help you? 做為唯一的回應。
  7. 按一下 [儲存]。
  8. 關閉路線編輯面板。

代理回覆螢幕截圖

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

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

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

店家搜尋器頁面

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. 在「Flows」部分,選取「Default Start Flow」。
  3. 按一下「Pages」部分中的「新增」 按鈕。系統會顯示頁面顯示名稱的文字項目。
  4. 輸入 Store Location 做為頁面的顯示名稱,然後按下 Enter 鍵。
  5. 按一下頁面顯示名稱旁的 more_vert 按鈕。
  6. 選取「編輯」,開啟頁面編輯面板。
  7. 找到「Entry fulfillment」(項目執行要求),然後按一下「Edit fulfillment」(編輯執行要求)。
  8. 按一下「+Add dialogue response」,在「Agent responses」部分的「Agent dialogue」欄位中輸入 Our store is located at 1007 Mountain Drive, Gotham City, NJ.。
  9. 按一下 [儲存]。
  10. 關閉頁面編輯面板。

網頁螢幕截圖

在流程中新增想前往的位置路徑

現在,請建立一條路徑,將「商店地點」頁面設為轉換目標。呼叫這個路徑時,工作階段會轉換至「商店地點」頁面。這項路徑會套用至預設啟動流程,因此只要流程處於啟用狀態,路徑就會在範圍內。

對於單一流程代理,這表示路徑一律在範圍內。在對話中的任何時間點,使用者都可以詢問商店地點,系統就會呼叫這條路徑。

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

  1. 按一下「Build」分頁標籤。
  2. 在「Flows」部分,選取「Default Start Flow」。
  3. 點選圖表中的「Start Page」節點。這是「Default Start Flow」的起始頁面。
  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. 代理會將工作階段轉換至「Store Location」(商店位置) 頁面。
  5. 代理會將「Store Location」(商店位置) 頁面的項目執行要求回覆訊息,新增至回覆佇列。
  6. 代理將回覆佇列的內容傳送給您。

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

在本節中,您將建立「Store Hours」頁面,處理使用者對營業時間的問題。先前,您是透過「Build」(建構) 和「Manage」(管理) 分頁建立頁面和意圖。本節將說明如何透過內嵌建立功能,更快速地建立這些元件。

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

  1. 按一下圖表中的「Start Page」節點。
  2. 按一下「路徑」旁的「 新增」。意圖路徑編輯面板隨即開啟。
  3. 在「Intent」部分,選取「New intent」。意圖編輯面板隨即開啟。
  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. 關閉所有開啟的編輯面板。

訂購商品頁面

接著,建立使用表單參數的頁面。當您要求新的襯衫訂單時,工作階段會轉換至這個頁面,收集襯衫訂單的尺寸和顏色。

建立襯衫尺寸的自訂實體類型

實體類型控制如何從使用者輸入內容擷取資料。Dialogflow CX 提供預先定義的系統實體,可比對常見的資料類型,例如日期、時間、顏色和電子郵件地址。您也可以為特定資料建立自訂實體。

在這個代理中,您可以使用系統實體來表示襯衫顏色,但必須建立自訂實體來表示襯衫尺寸。

size 實體類型應包含下列實體項目:

實體 同義詞
小 small, tiny, little
中 medium, regular, average
大 大、巨型

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

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

建立含有意圖參數的訂單意圖

您需要一個意圖,在使用者要求新的襯衫訂單時進行比對。如果使用者一開始就提供襯衫顏色或尺寸,這個意圖也應擷取這些資訊。

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

您可以標註部分訓練詞組,並設定相關聯的意圖參數,控管如何透過意圖比對擷取使用者資料。

舉例來說,假設訓練詞組為「東京明天的天氣預報為何?」,您可以使用 date 參數為「明天」加上註解,並使用 location 參數為「東京」加上註解。當您為訓練詞組的某些部分加上註解時,Dialogflow CX 會辨識出這些部分只是使用者在執行階段可能提供的實際值範例。

如果使用者輸入「雪梨週五的天氣預報為何?」,Dialogflow CX 可以從「Friday」中擷取 date 參數,並從「Sydney」中擷取 location 參數。

如要在控制台中為訓練詞組加上註解,請按照下列步驟操作:

  1. 醒目顯示要加上註解的訓練詞組部分。
  2. 從清單中選取所需實體類型。
  3. Dialogflow 會在下列參數表中建立參數。

請按照下列步驟建立名為 order.new 的意圖:

  1. 針對每個包含顏色的詞組,使用 color 參數和 @sys.color 系統實體類型為顏色加上註解。
  2. 針對每個包含襯衫尺寸的詞組,使用 size 參數和您先前建立的 @size 自訂實體類型,為尺寸加上註解。

訓練詞組和參數應如下所示:

意圖螢幕截圖

建立訂購頁面

建立新訂購頁面:

  • 顯示名稱: New Order
  • Entry fulfillment: Ok, let's start a new order.

在訂購頁面加入表單

您可以為每個頁面定義表單,也就是應向使用者收集的參數清單。代理會與使用者進行多輪對話,直到收集到所有必要的表單參數 (也稱為頁面參數)。您也需要為每個表單參數提供提示,代理會使用這些提示向使用者要求資訊。這項程序稱為表單填寫。

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

為「New Order」頁面定義兩個必要表單參數:

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

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

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

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

在「Default Start Flow」中新增路由,當使用者想建立新訂單時,就會轉換至「New Order」頁面:

  • 意圖:order.new
  • 轉換目標頁面:新訂單

確認頁面

最後一個頁面會確認訂單並結束工作階段。

建立確認頁面

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

  • 顯示名稱:Order Confirmation
  • 進入點執行要求:You can pick up your order for a $session.params.size, $session.params.color shirt in 7 to 10 business days. Goodbye.

在訂購頁面新增條件路徑

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

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

在訂購頁面新增下列路徑,系統會在訂購頁面表單填寫完畢時呼叫該路徑。這個條件路徑會在回覆中使用參數參照,並將工作階段轉換至「Order Confirmation」(訂單確認) 頁面。

  • 條件: $page.params.status = "FINAL"
  • 虛擬服務專員說: You have selected a $session.params.size, $session.params.color shirt.
  • 轉場頁面: Order Confirmation

在訂購頁面新增下列路徑。當頁面處於啟用狀態且條件路徑經過評估時,系統會為每個對話回合執行這個路徑。評估並呼叫上述條件時,頁面會變成非作用中,因此不會評估這個 true 條件路徑:

  • 條件: true
  • 虛擬服務專員說: I'd like to collect a bit more information from you.

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

將下列條件路徑新增至「Order Confirmation」頁面,以便在頁面啟用並處理進入點執行要求後結束工作階段:

  • 條件: true
  • 轉換目標頁面: End Session

測試完成的代理

使用下列對話測試代理:

對話 說明
使用者:你好
虛擬服務專員:你好,我是襯衫訂購虛擬服務專員。 需要什麼協助嗎?
  1. 系統會呼叫「Default Start Flow」中的「Default Welcome Intent」路徑。
  2. 這個狀態處理常式的執行要求 (「Hello, this...」) 會新增至回應佇列。
  3. 代理將回覆佇列傳送給使用者。
使用者:我想買一件藍色襯衫
代理:好的,我們來建立新訂單。
服務專員:我想向您收集更多資訊。
Agent:您要什麼尺寸?
  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 條件路徑。其中包含回覆訊息 (「我想收集…」)、因此會加入回應佇列。
  7. 頁面表單未填寫,因此代理會使用尺寸提示 (「What size...」)並將其新增至回應佇列。
  8. 代理將回覆佇列傳送給使用者。
使用者:大號
服務專員:你選的是大號藍色襯衫。
服務專員:您訂購的大號藍色襯衫會在 7 到 10 個工作天內到貨,屆時即可取貨。再見。
  1. 使用者輸入內容會填入代理在前一個對話輪次中要求的 size 參數。
  2. 系統會評估並呼叫「New Order」(新訂單) 頁面中的表單完成路徑。這個意圖具有執行要求 (「您已選取...」),該執行要求會新增至回覆佇列,且其參數參照會解析為使用者提供的實際值。
  3. 工作階段會轉換至「訂單確認」頁面。
  4. 「訂單確認」頁面具有項目執行要求 (「您可以取貨…」),該要求會新增至回應佇列。
  5. 代理將回覆佇列傳送給使用者。
  6. 工作階段會轉換為「End Session」。

準備投入正式環境

在正式環境中執行代理前,請先實作正式環境最佳做法。