建立序列流程意圖

現在您已擁有序列實體,可以建立意圖,向使用者收集序列。您至少需要三個意圖,分別負責以下事項:

  1. 主要意圖「序列」
    • 擷取語音,開始收集序列。
    • 後續事件會呼叫這個函式,繼續擷取序列,直到使用者表示完成為止。
  2. 內容意圖「Sequence - Edit」
    • 擷取語音,修正最後收集的序列。
    • 以程式輔助方式迴圈返回「Sequence」意圖,收集修正後的序列。
  3. 內容意圖「Sequence - Done」
    • 擷取表示序列完成的語音。

下一節將說明 Webhook 如何連結所有這些項目,但首先請設定意圖。

建立「Sequence」意圖

這是收集序列的主要意圖。設定方式如下:

  1. 將輸入情境留空,讓使用者在通話開始時觸發這個意圖。
  2. 新增「collecting-sequence」輸出背景資訊。我們會使用這個脈絡,在流程中啟用修正和完成意圖。
  3. 新增輸出背景資訊「editing-sequence」,並將效期設為 0。我們會在下一節中,透過「Sequence - Edit」意圖啟用這個背景資訊,並設定效期。請務必在此清除該背景資訊,確保「editing-sequence」背景資訊只會在觸發「Edit」意圖後立即啟用。
  4. 新增「continue-sequence」事件,讓 Webhook 循環執行這項意圖,收集所有部分序列。

  5. 新增訓練詞組,讓使用者可以觸發這個意圖來啟動流程。 這個範例使用「我的訂單狀態為何」、「追蹤我的訂單」、「我的訂單在哪裡」等詞組。

  6. 新增動作名稱「handle-sequence」,讓 Webhook 知道何時觸發。 設定所有意圖後,您將在本教學課程的下一節中編寫 Webhook。

  7. 使用您在上一節建立的 regexp 實體,新增必要參數「new_sequence」,以收集部分序列。將實體類型設為「@alphanumeric」,值設為「$new_sequence」。

  8. 新增選用參數「existing_sequence」,並將值設為「#continue-sequence.existing_sequence」,從事件中擷取新的現有序列。實體類型可以留空。

  9. 新增選用參數「previous_sequence」,並將值設為「#continue-sequence.previous_sequence」,從事件中擷取先前的序列。實體類型可以留空。

  10. 啟用這個意圖的 Webhook 呼叫運算單元填充的 Webhook 呼叫。

建立「Sequence - Edit」意圖

這項意圖會監聽語音,判斷代理程式是否誤聽先前的序列。設定方式如下:

  1. 新增輸入背景資訊「collecting-sequence」,這樣只有在序列流程中,才會呼叫這個意圖。這與「Sequence」意圖啟用的背景資訊相同。
  2. 為我們的完成 Webhook 新增「editing-sequence」輸出背景資訊,以供參考。啟用這項意圖後,Webhook 會將 Dialogflow 迴圈返回主要的「Sequence」意圖,以收集下一個序列。「Sequence」意圖的運算單元填充 webhook 會檢查是否有有效的「editing-sequence」背景資訊,以便向使用者提供同情的「try again」回應。
  3. 新增「否」、「不對」等訓練詞組。

  4. 新增動作名稱「handle-sequence」。這項動作與「Sequence」意圖相同,因此我們可以重複使用相同的 Webhook 邏輯。

  5. 新增參數「new_sequence」,並將值設為「#collecting-sequence.previous_sequence」,從背景資訊中擷取上一個序列,有效還原最後一次的語音輸入。我們不會在此新增「existing_sequence」參數,因此網路鉤子會以先前的序列覆寫現有序列。

  6. 為這個意圖啟用 Webhook 呼叫。

建立「Sequence - Done」意圖。

  1. 新增輸入背景資訊「collecting-sequence」
  2. 新增輸出背景資訊「collecting-sequence」,並將效期設為 0,藉此清除背景資訊。清除後,代理程式收集完序列後,就不會再次觸發「編輯」和「完成」意圖。
  3. 新增「這樣就好了」、「完成了」等訓練詞組。

  4. 新增參數「sequence」,並將值設為「#collecting-sequence.existing_sequence」,從背景資訊中擷取最終序列。

  5. 為這個意圖啟用 Webhook 呼叫。

透過 Webhook 連結意圖

現在您已具備編寫這些意圖邏輯的所有必要條件。在下一節中,您將瞭解如何編寫 Webhook,使用所有這些內容、動作、參數和事件,完成序列驗證流程。