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

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

下圖顯示本指南的完整代理程式:

代理圖表螢幕截圖

事前準備

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

建立虛擬服務專員

為本指南建立代理程式:

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

選擇性匯入代理

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

如要略過主控台步驟,請下載代理程式匯入

預設流程和意圖

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

如要查看意圖,請依序點按「管理」和「意圖」;如要查看流程,請點按「建構」

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

測試預設歡迎回覆訊息

預設流程和意圖可處理基本對話,只會顯示歡迎訊息。

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

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

模擬工具螢幕截圖

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

  1. 提供輸入內容時,代理會評估有效範圍內的狀態處理常式,包括有效的「Default Start Flow」流程開始頁面
  2. 代理程式會找出與「預設歡迎意圖」相符的路線,並執行該路線。
  3. 代理程式會隨機選取其中一則完成回應訊息,並加入回應佇列
  4. 由於路徑沒有轉換目標,因此有效流程和頁面維持不變。
  5. 代理程式會將回應佇列的內容傳送給您。

編輯歡迎回覆訊息

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

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

代理程式回覆螢幕截圖

測試更新後的歡迎訊息

如要測試更新後的回覆:

  1. 按一下「測試代理程式」按鈕,開啟模擬工具。
  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. 按一下「頁面」部分中的「新增」 按鈕。系統會顯示頁面顯示名稱的文字輸入欄位。
  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. 關閉頁面編輯面板。

網頁螢幕截圖

在流程中新增想去的地點意圖路徑

現在,請建立以「商店位置」頁面為轉場目標的路徑。 呼叫這條路徑時,工作階段會轉換至「商店位置」頁面。 這條路徑會套用至「Default Start Flow」,因此只要流程處於啟用狀態,就會在範圍內。

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

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

  1. 按一下「Build」(建構) 分頁標籤。
  2. 在「Flows」部分選取「Default Start Flow」
  3. 按一下圖表中的「Start Page」節點。這是「Default Start Flow」的開始頁面。
  4. 新增下列意圖路徑:
    • 意圖: store.location
    • 轉場頁面: Store Location
  5. 按一下 [儲存]
  6. 關閉意圖路徑編輯面板。

意圖路徑螢幕截圖

關閉編輯面板後,圖表上會顯示新頁面的節點。從「開始」節點到「商店位置」節點的箭頭,會顯示工作階段在節點間的轉換方式。

測試商店位置頁面

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

  1. 按一下「測試代理程式」按鈕,開啟模擬工具。
  2. 輸入 What is the store location?,然後按下 Enter 鍵。
  3. 服務專員提供地址。
  4. 關閉模擬器。

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

  1. 提供輸入內容時,代理會評估有效範圍內的狀態處理常式,包括有效的「Default Start Flow」流程開始頁面
  2. 代理程式會找出與 store.location 意圖相符的路徑,並執行該路徑。
  3. 由於路徑沒有任何完成回覆訊息,因此代理程式不會在回覆佇列中新增任何內容。
  4. 服務專員會將工作階段轉移至「門市位置」頁面。
  5. 代理程式會將「商店位置」頁面的項目執行要求回應訊息新增至回應佇列。
  6. 代理程式會將回應佇列的內容傳送給您。

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

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

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

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

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

  6. 前往路線編輯面板的「轉場效果」部分。

  7. 如要進行「頁面」轉場效果,請選取「新頁面」

  8. 在顯示的文字輸入欄位中輸入 Store Hours

  9. 按一下 [儲存]。圖表上會顯示新網頁,因為現在有導向該網頁的轉場效果。

  10. 關閉路線編輯面板。

  11. 新增提供商店營業時間的項目履行方式,就像您為「商店位置」所做的一樣。

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

訂單項目頁面

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

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

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

這個代理程式可使用襯衫顏色的系統實體,但你必須建立襯衫尺寸的自訂實體。

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

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

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

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

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

使用者要求訂購新襯衫時,您需要比對相符的意圖。如果使用者一開始提供所選襯衫顏色或尺寸,這個意圖也應選擇性擷取這些資訊。

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

您可以為訓練詞組的部分內容「加註」,並設定相關聯的意圖參數,藉此控制意圖比對的擷取方式。

舉例來說,假設有一個「What is the forecast tomorrow for Tokyo?」(東京明天的天氣預報為何?) 之類的訓練詞組。您可以使用 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
  • 填寫報名表: Ok, let's start a new order.

在訂單頁面中新增表單

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

當使用者提供意圖參數來比對意圖時,意圖參數會變成工作階段參數。頁面首次啟用時,系統會使用具有相同名稱的所有工作階段參數,預先填入表單參數。因此,如果使用者在比對出 order.new 意圖時提供大小或顏色,系統就會自動填入表單。

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

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

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

  1. 按一下圖表中的「New Order」頁面。
  2. 按一下「參數」新增按鈕 ,開啟參數編輯面板。
  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.

在訂單頁面新增條件路徑

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

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

在訂單頁面新增下列路徑,填寫訂單頁面表單時會呼叫此路徑。這個條件路由會在傳送給使用者的回應中參照參數,並將工作階段轉移至「訂單確認」頁面。

  • 條件: $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. 代理程式會將回應佇列傳送給使用者。
消費者:我想買藍色襯衫
服務專員:好的,我們來建立新訂單。
服務專員:我們需要收集更多資訊。
代理程式:What size do you want? (你要什麼尺寸?)
  1. 系統會評估「Default Start Flow」中的 order.new 意圖路徑。
  2. 系統會比對 order.new 意圖,並將 color 意圖參數設為「blue」。
  3. 工作階段會轉換至「New Order」(新訂單) 頁面,「color」(顏色) 意圖參數會變成工作階段參數。
  4. 「新訂單」頁面會顯示訂單履行項目 (「好的,我們開始吧...」), 因此會加入回應佇列。
  5. color 工作階段參數會用來填入同名的表單參數。
  6. 系統會評估並呼叫「新訂單」頁面中的 true 條件路徑。 當中包含回覆訊息 (「我想收集...」)、 因此會加入回應佇列。
  7. 頁面的表單未填寫,因此服務專員使用大小提示 (「What size...」)並將此項目新增至回應佇列。
  8. 代理程式會將回應佇列傳送給使用者。
使用者:large
代理程式:You have selected a large, blue shirt. (你已選取藍色大號襯衫。)
服務專員:你訂購的大號藍色上衣會在 7 到 10 個工作天內送達。再見。
  1. 使用者輸入的內容會填入代理在先前對話輪次中要求的 size 參數。
  2. 系統會評估並呼叫「新訂單」頁面中的表單填寫路徑。 其中包含執行要求 (「你已選取...」),並已加入回應佇列,且參數參照已解析為使用者提供的實際值。
  3. 工作階段會轉換至「訂單確認」頁面。
  4. 「訂單確認」頁面有出貨項目 (「你可以領取...」),已新增至回應佇列。
  5. 代理程式會將回應佇列傳送給使用者。
  6. 工作階段會轉換為「結束工作階段」

準備投入正式環境

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