現在您已建立序列實體,可以建立意圖,向使用者收集序列。您至少需要三個意圖,分別負責以下事項:
- 主要意圖「Sequence」
- 擷取語句,開始收集序列。
- 由後續事件叫用,持續擷取序列,直到使用者表示完成為止。
- 情境意圖「Sequence - Edit」
- 擷取語句,修正最後收集到的序列。
- 透過程式設計方式循環回到「Sequence」意圖,收集更正後的序列。
- 情境意圖「Sequence - Done」
- 擷取表示序列已完成的話語。
下一節將說明 Webhook 如何連結所有這些項目,但首先請設定意圖。
建立「Sequence」意圖
這是收集序列的主要目的。設定方式如下:
- 將輸入內容留空,讓使用者可以在通話開始時觸發這個意圖。
- 新增輸出情境「collecting-sequence」。我們將使用這個情境,在對話流程中啟用修正和完成意圖。
- 新增輸出情境「editing-sequence」,並將生命週期設為 0。我們將在下一節中,透過「Sequence - Edit」意圖啟用這個情境,並設定其生命週期。請務必在此清除該情境,這樣「editing-sequence」情境才會在觸發「Edit」意圖後立即啟用。
新增「continue-sequence」事件,讓 Webhook 循環執行這個意圖,收集所有部分序列。

新增訓練詞組,讓使用者能觸發這個意圖來啟動流程。這個範例使用「我的訂單狀態為何」、「追蹤我的訂單」、「我的訂單在哪裡」等詞組。
新增動作名稱「handle-sequence」,讓 Webhook 知道何時觸發。設定完所有意圖後,您將在本教學課程的下一節編寫 Webhook 程式碼。
使用您在上一節建立的規則運算式實體,新增必要參數「new_sequence」,用於收集部分序列。將實體類型設為「@alphanumeric」,並將值設為「$new_sequence」。
新增選用參數「existing_sequence」,並將值設為「#continue-sequence.existing_sequence」,從事件中擷取新的現有序列。實體類型可以留空。
新增選用參數「previous_sequence」,並將值設為「#continue-sequence.previous_sequence」,從事件中擷取前一個序列。實體類型可以留空。
為這個意圖啟用 Webhook 呼叫,並為空位填補啟用 Webhook 呼叫。

建立「Sequence - Edit」意圖
這個意圖會監聽使用者是否說出代理聽錯前一個序列的話語。設定方式如下:
- 新增輸入情境「collecting-sequence」,這樣只有在序列流程中,才會呼叫這個意圖。這與「Sequence」意圖啟用的情境相同。
- 新增輸出情境「editing-sequence」,供執行要求 Webhook 參照。啟用這個意圖後,Webhook 會將 Dialogflow 循環回到主要的「Sequence」意圖,以收集下一個序列。「Sequence」意圖的槽位填補 Webhook 會檢查是否有有效的「editing-sequence」情境,並向使用者提供同理心的「再試一次」回覆。
新增訓練詞組,例如「不」、「不對」等。

新增動作名稱「handle-sequence」。這個動作與「Sequence」意圖相同,因此我們可以重複使用相同的 Webhook 邏輯。
新增參數「new_sequence」,並將值設為「#collecting-sequence.previous_sequence」,從情境中擷取前一個序列,有效復原最後一個語句。我們不會在這裡新增「existing_sequence」參數,因此 Webhook 會以先前的序列覆寫現有序列。
為這個意圖啟用 Webhook 呼叫。

建立「Sequence - Done」意圖。
- 新增輸入情境「collecting-sequence」
- 新增輸出內容「collecting-sequence」,並將生命週期設為 0,以清除內容。清除後,代理程式就不會再次觸發「Edit」和「Done」意圖,因為代理程式已完成收集序列。
新增訓練詞組,例如「that's it」、「all done」等。

新增參數「sequence」,並將值設為「#collecting-sequence.existing_sequence」,從情境中擷取最終序列。
為這個意圖啟用 Webhook 呼叫。

透過 Webhook 連結意圖
現在,您已具備為這些意圖編寫邏輯所需的一切。在下一節中,您將瞭解如何編寫 Webhook 程式碼,以使用所有這些情境、動作、參數和事件來完成序列驗證流程。