從 Dialogflow 遷移至 Actions Builder 專案

身為 Dialogflow 開發人員,建議您將現有的 Actions 遷移至 Actions Builder。使用新的控制台方法開發動作有多項好處,而且您可以輕鬆遷移現有的 Dialogflow 專案。本頁說明如何使用 Dialogflow/Actions Builder 遷移工具。

在閱讀本指南之前,建議您先參閱 Dialogflow to Actions Builder 遷移總覽,瞭解 Dialogflow 和 Actions Builder 之間的重要概念和差異。

遷移工具的功能

Dialogflow 到 Actions Builder 遷移工具可以轉換特定 Dialogflow 元素 (例如意圖和實體),以便與 Action Builder 搭配使用。

遷移工具會自動將下列 Dialogflow 元素遷移至 Actions Builder:

  • Dialogflow 的預設歡迎意圖會遷移為主要叫用。
  • 動作支援的所有語言訓練詞組和實體。
  • 沒有輸入背景資訊的意圖會做為全域意圖進行遷移。
  • 具有一個輸入背景資訊的意圖,會做為場景和意圖進行遷移。
  • 具有一個輸入背景資訊和運算單元填充的意圖會產生兩個場景和一個意圖,用於處理運算單元填充事件的轉換作業。
  • 使用 Dialogflow 備用、媒體和歡迎事件的意圖會產生相關的 Actions Builder 處理常式及含有訓練詞組的意圖。
  • 使用 Dialogflow 日期和數字系統實體的意圖會產生相關的 Actions Builder 系統類型。

遷移工具「不會」處理下列 Dialogflow 元素:

  • 具有多個輸入背景資訊的意圖。場景必須手動建立。
  • 在 Dialogflow 中使用自訂事件的意圖。
  • Dialogflow 系統實體不是日期或數字。這些實體是建立新的類型,但您必須手動新增同義詞。
  • Dialogflow 執行要求原始碼。由於 API 版本不同,因此這段程式碼不會遷移至 Builder。

存取遷移工具

如要存取遷移工具,請在「Actions」主控台中開啟 Dialogflow 專案,然後依序前往「Develop」(開發) >「Actions」(動作)

如果您不確定「Actions」主控台使用的專案,請前往 Dialogflow 控制台,然後按照下列步驟操作:

  1. 開啟您要遷移的專案,然後按一下「設定」圖示。
  2. 在「一般」>「專案 ID」下方,點選「在 Google 上執行的動作」連結。這個步驟會將您導向特定專案的 Actions 主控台。
  3. 依序前往「開發」>「動作」,然後按一下「預覽遷移作業」

瀏覽資訊投影片,然後按一下「開始遷移」,查看遷移資訊主頁。

遷移資訊主頁

遷移資訊主頁會顯示遷移選項,以及與要遷移項目相關的資訊。

遷移選項

遷移工具提供兩種將 Dialogflow 專案遷移至 Actions Builder 的選項:

  • 遷移為新專案 (建議)
    • 完整保留現有 Dialogflow 專案,並將副本遷移至新專案。
    • 顯示名稱和目錄資訊仍會與現有正式專案相關聯。如要瞭解如何用遷移的專案覆寫使用中的專案,請參閱建議程序
  • 遷移這項專案
    • 取代現有的 Dialogflow 專案,並保留您為專案定義的現有顯示名稱和 Google 助理目錄資訊

遷移報表

您可以展開遷移報告的各個部分,查看與下列資訊相關的專案專屬詳細資料:

  • 系統會完整遷移的項目。
  • 系統會遷移哪些資料,但需要在遷移後進行額外的設定。
  • 系統不會遷移哪些項目,您需要手動新增。
  • Actions Builder 中無法提供 Dialogflow 專案使用的功能。

您也可以下載遷移報表,方便您在對專案遷移後變更時參考這份報告。

遷移後設定

雖然遷移工具可協助您將 Dialogflow 專案的重要內容移至 Actions Builder,但您需要進行額外的開發作業,才能設定尚未遷移的轉換作業、提示和 Webhook。

更新對話流程以使用場景

雖然遷移工具是根據 Dialogflow 意圖產生一個輸入情境並產生場景,但這並非一對一關係。部分遷移後的場景可能不適合在 Actions Builder 中使用新的對話模型

您可能需要評估所需的情境,重新思考對話流程。視動作的複雜度而定,如果產生的場景不再適用於對話流程,您可以更輕鬆地刪除這些場景。

查看及更新全域意圖

沒有輸入背景資訊的 Dialogflow 意圖會遷移至 Actions Builder 做為全域意圖。全域意圖在整個對話中都會處於有效狀態,表示隨時都能比對。

全域意圖也能在使用者叫用動作時,透過深層連結將使用者導向特定流程。請務必確認產生的全域意圖「應」是否有效,且可供全域範圍內的使用者存取。如要將全域意圖變更為一般意圖,請按一下意圖,並將全域意圖處理選項變更為「NO」

將訓練詞組的意圖合併在一起

如有部分意圖共用非常類似的訓練詞組,則應將意圖合併為單一通用意圖。這樣可以提高意圖比對的準確度。

例如,意圖 A 包含下列訓練詞組:

  • 「好,我想確認已經準備好了」
  • 「好的,準備好了」
  • 「立即開始」

Intent B 具有下列訓練詞組:

  • 「好,我想確認已經準備好了」
  • 「好的,我想我已經準備好了」

由於這兩個意圖之間的訓練詞組十分相似,因此請將「意圖 A」和「意圖 B」合併為較籠統的意圖 (意圖 C) 並刪除原有意圖。在參照「意圖 A」或「意圖 B」的場景中使用意圖 C

Intent C 包含下列訓練詞組:

  • 「好,我想確認已經準備好了」
  • 「好的,準備好了」
  • 「立即開始」
  • 「好的,我想我已經準備好了」

更新事件處理方式

對於在 Dialogflow 中使用特定事件 (fallbackmediawelcome) 的意圖,遷移工具會為該事件建立相關的系統意圖。如果相同的 Dialogflow 意圖含有訓練詞組,則系統會使用相同的訓練詞組建立額外意圖。

如要在 Actions Builder 中完成事件設定,您必須視需要新增 Webhook 處理常式和轉換。

新增系統意圖來處理備用意圖

在 Dialogflow 中,備用意圖會處理意圖無法辨識使用者輸入內容的情況。Actions Builder 會使用 NO_MATCHNO_INPOUT 系統意圖來說明這類情況。

NO_MATCHNO_INPUT 系統意圖最多可以在場景中加入三次。舉例來說,在場景中加入三個 NO_MATCH 意圖,您可以一步步地提供詳細資料,讓使用者瞭解動作在使用者回應中所尋找的內容。

請務必在 Dialogflow 專案使用備用意圖時新增系統意圖。以下是常用的動作建構工具系統意圖範例:NO_MATCHNO_INPUT。如要進一步瞭解這些系統意圖,請參閱「系統意圖」。

更新執行要求策略

將 Dialogflow 執行要求程式碼移至 Actions Builder,是遷移程序中的重要環節之一。雖然 Webhook 呼叫和一般執行要求的概念維持不變,但動作建構工具提供重複使用函式的選項,並新增更多 Webhook 觸發商機。

因此,建議您重新檢視專案的執行要求,以便充分運用 Actions Builder 的功能:

  • 只要使用自訂 Webhook 處理常式名稱,您就能從不同場景的多個部分呼叫同一個 Webhook 函式。
  • 您可以依據輸入情境、條件式驗證、運算單元填充和意圖比對來發出 Webhook 呼叫。可更精細地控管進行 Webhook 呼叫的時間和位置,還能運用更多廣告素材執行要求解決方案。

更新執行要求程式碼時,請考量應觸發 Webhook 呼叫的時機和位置。您可以使用「呼叫 Webhook」選項,在場景的多個部分啟用 Webhook。如要進一步瞭解如何啟用 Webhook,請參閱執行要求遷移指南中的 Webhook 一節。

遷移範例

由於各工具使用的對話模型有所不同,將專案從 Dialogflow 遷移至 Actions Builder 的結構有顯著差異。只要運用 Actions Builder 中的場景、提示和轉場效果,以及可重複使用的 Webhook 處理常式等功能,即可讓遷移後專案的程式碼與原始版本產生顯著差異。

比較已遷移的專案有助您瞭解從 Dialogflow 遷移至 Actions Builder 時,需要的變更類型和範圍。您可以查看下列已遷移的範例專案來比較實作項目:

範例專案 Dialogflow 程式碼 Actions 建構工具程式碼
關於 Google 的資訊 專案程式碼 專案程式碼
交易 專案程式碼 專案程式碼
帳戶連結 專案程式碼 專案程式碼

本節說明建議的遷移程序,並保留目前的顯示 (叫用) 名稱、目錄資訊和歷來資料。

這項程序涉及兩項不同的 Actions Builder 專案,兩者都必須從同一個 Dialogflow 專案遷移。為求明確,這些專案稱為下列專案:

  • experimental:這項專案可用來設定及測試遷移作業。
  • original:這項專案目前已上線,正在為使用者提供服務。

如要遷移專案,請按照下列步驟操作:

  1. 使用 Dialogflow 的匯出功能建立 Dialogflow 專案的備份。
  2. 前往動作控制台,然後開啟要遷移的專案。
  3. 依序前往「開發」>「動作」,然後按一下「預覽遷移作業」
  4. 點閱資訊投影片,然後按一下「開始遷移」
  5. 選擇「Migrate as a new project」(遷移為新專案)
  6. 查看遷移報告,並視需要下載以供日後參考。
  7. 按一下「遷移」
  8. 輸入「實驗」專案的名稱,然後按一下「建立專案」。記下「Project ID」(專案 ID)
  9. 完成所有必要的遷移後設定,並確認動作是否正常運作。
  10. 使用 gactions CLI,即可提取實驗版專案的草稿

    gactions pull --project-id experimental-project-id

  11. 在 Actions 控制台中重新開啟「原始」Dialogflow 專案。

  12. 依序前往「開發」>「動作」,然後按一下「預覽遷移作業」

  13. 選擇「遷移這項專案」

  14. 按一下「遷移」

  15. 按一下「更多」圖示 >「專案設定」,然後記下「專案 ID」。

  16. 在本機系統上,開啟您提取的「實驗」專案的 settings.yaml 檔案,然後將 projectId 換成「原始」專案的專案 ID。

  17. 您可以使用 gactions CLI,在本機儲存的專案推送草稿

    gactions push

  18. 請按照相關步驟透過 Alpha 或 Beta 版頻道發布,或是將動作發布至正式版群組