Dialogflow CX 對話 (工作階段) 可以描述為狀態機,並以視覺化方式呈現。工作階段的狀態以網頁表示。
您可為每個流程定義許多頁面,好讓這些頁面能夠合併起來,處理流程設計主題的完整對話。在任何時間點,只有一個頁面是目前頁面,目前頁面會視為有效,與該頁面相關聯的流程也會視為有效。每個流程都有專屬的開始頁面。流程最初啟用時,開始頁面會成為目前頁面。在每次對話中,目前頁面會維持不變或轉換至其他頁面。
您可以設定每個頁面,從使用者收集與頁面代表的對話狀態相關的資訊。舉例來說,您可能會在下方的圖表中建立頁面 (以藍色標示),用於披薩外送代理程式的「訂餐」流程。圖表的「Start」節點代表「Food Order」流程的開始頁面。完成流程後,系統會轉移至「確認」流程。
網頁生命週期
網頁啟動後,代理程式會執行多個步驟,可能包括填寫項目、預先填寫表單、評估狀態處理常式、提示表單參數、傳送回覆訊息給使用者,以及變更網頁或重複迴圈:
這個程序的詳細步驟如下:
如果網頁有項目完成,系統就會呼叫該項目。出貨程序提供的任何靜態回應都會新增至回應佇列。
如果啟用部分回應,Dialogflow CX 會清除回應佇列,並將所有佇列訊息做為部分回應,傳送給串流 API 呼叫端。
如果執行要求有 Webhook,系統會呼叫該 Webhook,這可能會在佇列中附加其他回應。這些額外回應不會立即觸發回應佇列的排清作業。
如果網頁有表單參數,系統可能會預先填入:
如有任何適用範圍內的狀態處理常式,系統會根據處理常式評估順序規則進行評估。這可能包括從先前的迴圈疊代呼叫的路徑、事件處理常式或重新提示處理常式。如果呼叫任何狀態處理常式,可能會發生下列一或多種情況:
- 如果處理常式有執行要求,系統會呼叫該要求。出貨程序提供的任何靜態回應都會新增至回應佇列。如果已啟用部分回應和 Webhook,系統也會執行這些功能。
- 如果處理常式有目標流程或頁面,工作階段會轉換至目標,且頁面會變成非使用中狀態。
如果符合下列所有條件,系統會在回應佇列中加入表單參數提示:
- 網頁含有表單。
- 還有必填的表單參數。
- 步驟 3 未遵循重新提示處理常式。
- 如果已啟用部分回應和 Webhook,系統會執行這些功能。
其餘回應佇列訊息會傳送給使用者,代理程式則會等待使用者輸入內容。
如果使用者輸入內容提供提示表單參數,請填寫參數。接下來請繼續執行步驟 3。
網頁生命週期導覽
模擬器執行步驟檢視器可讓您在特定對話回合的步驟之間切換,並針對每個步驟將相關的代理程式建構工具元素帶入焦點。在下列範例中,使用者輸入「I would like to rent a car」會觸發五個執行和轉移步驟:
執行步驟檢視器會將您帶往第一步的對話開始頁面。在本例中,這是預設的起始頁面。

系統已觸發意圖
car_rental.reservation_create的轉場路徑。 執行步驟檢視器會將焦點放在這個路徑上,您可以看到轉換目標是Pickup Location頁面。
服務專員進入頁面
Pickup Location。
代理程式會評估「
Pickup Location」頁面的進入填寫狀態。由於履單資訊為空白,因此不會發生任何事。
代理程式會嘗試收集必要表單參數
pickup_location,並向使用者顯示該參數的初始提示完成訊息。
你也可以復原最後一次說出的內容,然後嘗試其他內容,測試不同的網頁轉場效果。

建立頁面
如要建立頁面,請按照下列步驟操作:
控制台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 在「流程」部分中,選取頁面的流程。
- 按一下「頁面」部分中的「新增」add 按鈕。
- 輸入網頁的顯示名稱。
- 按一下頁面顯示名稱旁邊的設定按鈕 more_vert。
- 選取 [編輯]。
- 在隨即顯示的頁面編輯面板中輸入欄位。
- 按一下 [儲存]。
API
請參閱 Page 類型的 create 方法。
選取網頁參照的通訊協定和版本:
| 通訊協定 | V3 | V3beta1 |
|---|---|---|
| REST | 網頁資源 | 網頁資源 |
| RPC | 頁面介面 | 頁面介面 |
| C++ | PagesClient | 不適用 |
| C# | PagesClient | 不適用 |
| Go | PagesClient | 不適用 |
| Java | PagesClient | PagesClient |
| Node.js | PagesClient | PagesClient |
| PHP | 不適用 | 不適用 |
| Python | PagesClient | PagesClient |
| Ruby | 不適用 | 不適用 |
網頁資料
如要存取網頁的資料,請按照下列步驟操作:
控制台
- 開啟 Dialogflow CX 控制台。
- 選擇代理程式的 Google Cloud 專案。
- 選取代理程式。
- 按一下「流程」部分中的流程。
- 流程的頁面會填入「頁面」部分。
- 按一下頁面顯示名稱旁邊的設定按鈕 more_vert。
- 選取 [編輯]。
- 在隨即顯示的頁面編輯面板中輸入欄位。
- 按一下「儲存」即可儲存變更。
API
請參閱 Page 類型的 get 和 patch/update 方法。
選取網頁參照的通訊協定和版本:
| 通訊協定 | V3 | V3beta1 |
|---|---|---|
| REST | 網頁資源 | 網頁資源 |
| RPC | 頁面介面 | 頁面介面 |
| C++ | PagesClient | 不適用 |
| C# | PagesClient | 不適用 |
| Go | PagesClient | 不適用 |
| Java | PagesClient | PagesClient |
| Node.js | PagesClient | PagesClient |
| PHP | 不適用 | 不適用 |
| Python | PagesClient | PagesClient |
| Ruby | 不適用 | 不適用 |
以下資料與網頁相關聯:
- 顯示名稱: 使用者可讀的頁面名稱。
- 項目完成 (也稱為項目對話): 這是網頁最初啟用時要呼叫的完成。
- 參數:這些是網頁表單中的參數值,可擷取使用者的結構化輸入內容。
- 路徑: 網頁處於啟用狀態時,可能會呼叫這些狀態處理常式。 詳情請參閱「頁面層級處理常式路徑」。
- 路徑群組: 網頁處於有效狀態時,可能會呼叫這些群組中的路徑。 詳情請參閱「路徑群組」。
- 事件處理常式: 網頁處於活動狀態時,系統可能會呼叫這些事件處理常式。 詳情請參閱「網頁層級事件處理常式」。
頁面設定
頁面可採用下列設定:
如要存取頁面設定,請按照下列步驟操作:
控制台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 將滑鼠游標懸停在「頁面」部分中的頁面上。
- 按一下選項按鈕 more_vert。
- 選取「頁面設定」。
- 瀏覽或編輯設定。
- 按一下「儲存」即可儲存變更。
API
請參閱 Page 類型的 get 和 patch/update 方法。
選取網頁參照的通訊協定和版本:
| 通訊協定 | V3 | V3beta1 |
|---|---|---|
| REST | 網頁資源 | 網頁資源 |
| RPC | 頁面介面 | 頁面介面 |
| C++ | PagesClient | 不適用 |
| C# | PagesClient | 不適用 |
| Go | PagesClient | 不適用 |
| Java | PagesClient | PagesClient |
| Node.js | PagesClient | PagesClient |
| PHP | 不適用 | 不適用 |
| Python | PagesClient | PagesClient |
| Ruby | 不適用 | 不適用 |
刪除頁面
如要刪除頁面,請按照下列步驟操作:
控制台
- 開啟 Dialogflow CX 控制台。
- 選擇 Google Cloud 專案。
- 選取代理程式。
- 在「流程」部分選取頁面的流程。
- 在「頁面」部分中,按一下頁面顯示名稱旁邊的「設定」按鈕 more_vert。
- 選取 [刪除]。
API
請參閱 Page 類型的 delete 方法。
選取網頁參照的通訊協定和版本:
| 通訊協定 | V3 | V3beta1 |
|---|---|---|
| REST | 網頁資源 | 網頁資源 |
| RPC | 頁面介面 | 頁面介面 |
| C++ | PagesClient | 不適用 |
| C# | PagesClient | 不適用 |
| Go | PagesClient | 不適用 |
| Java | PagesClient | PagesClient |
| Node.js | PagesClient | PagesClient |
| PHP | 不適用 | 不適用 |
| Python | PagesClient | PagesClient |
| Ruby | 不適用 | 不適用 |