定義動作 (Dialogflow)

如要在 Dialogflow 中定義動作,請在 Dialogflow 代理程式中建立意圖,並將其指派為動作的進入點。您可以建立下列類型的動作:

  • 預設動作:每個 Dialogflow 代理程式都必須有一個動作,當使用者以名稱提出動作時 (例如:「Ok Google. 與 Google 的資訊交談」「Ok Google,讓我來向「關於 Google 的資訊」) 吧)。
  • 在對話中深層連結的其他意圖:當使用者以名稱叫用動作,「並」指定叫用詞組 (例如「針對歷史資訊談論 Google 的相關資訊」) 時,就會觸發這些動作。

如要進一步瞭解這些叫用模型的運作方式,請參閱「意圖與叫用」一文。

定義預設動作

每個 Dialogflow 代理程式都必須有一個處理 GOOGLE_ASSISTANT_WELCOME 事件的意圖。當使用者以名稱叫用動作 (例如「Ok Google,與 Google 相關的知識」) 時,就會觸發這個意圖。

您可以透過下列方式定義 GOOGLE_ASSISTANT_WELCOME 事件:

從 Dialogflow 控制台的意圖編輯器:

  1. 按一下導覽選單中的「Intents」
  2. 選取要設為歡迎事件的意圖。
  3. 在意圖的「Events」(事件) 區段中輸入 GOOGLE_ASSISTANT_WELCOME
  4. 點按「儲存」

    圖 1. Dialogflow 意圖「Events」(事件) 部分的螢幕截圖。

透過 Google 助理整合互動視窗:

  1. 按一下導覽選單中的「整合」,然後點選「Google 助理」
  2. 按一下「X」X,在「明確叫用」X欄位中移除目前的項目。
  3. 在「歡迎意圖」方塊中,選取要設為歡迎事件的意圖。

    圖 2:Dialogflow 控制台中 Google 助理整合互動視窗的螢幕截圖。

當您查看意圖的「Events」(事件) 區段時,應該會看到意圖現在已設定 GOOGLE_ASSISTANT_WELCOME 事件 (請參閱圖 1)。

啟用執行要求

根據預設,Dialogflow 意圖會傳回靜態回應,該回應會在意圖的「Response」部分指定。這項設定可能足以適用於只需要叫用時以相同訊息回應的簡單動作。然而,如果您希望意圖傳回動態回應,則必須提供可以處理複雜邏輯的執行要求,並為意圖即時撰寫回應。

如要為意圖啟用執行要求,請按照下列指示操作:

  1. 捲動至意圖編輯器的底部。
  2. 按一下「Fulfillment」,然後選取「Enable Webhook Call for this intent」(針對這個意圖啟用 Webhook 呼叫)。

    圖 3 Dialogflow 意圖「執行要求」部分的螢幕截圖。

如要瞭解如何在觸發這個意圖時處理這個意圖,請參閱「建構執行要求」。

定義其他動作

您可以提供其他動作做為對話的進入點。這項設定可讓使用者指定更多詳細資料,例如「與 Google 談論有關 Google 的記錄,來尋找歷史文物」

如要在 Dialogflow 中定義其他動作,請按照下列步驟操作:

  1. 為您要建立的特定動作建立意圖。
  2. 在意圖的「訓練詞組」部分,指定觸發這項動作的模式。舉例來說,如果您希望動作透過「Talk to Facts about Google find me history informations」(找出 Google 歷史事實) 一詞叫用,請提供下列訓練詞組

    • 「尋找歷史知識」
    • 「查詢歷史資訊」
    • 「取得關於公司歷史的資訊」
    • 「唸出一些總部的相關資訊」
    • 「告訴我總部的幾項小知識」

    建議您每個意圖至少設定 10 個訓練詞組。

  3. 如要為意圖啟用執行要求,請捲動至畫面底部,按一下「Fulfillment」,然後選取「Enable Webhook Call for this intent」(針對這個意圖啟用 Webhook 呼叫)。(如要進一步瞭解執行要求,請參閱建構執行要求)。

  4. 點按「儲存」

  5. 按一下導覽選單中的「Integrations」(整合),然後點選「Google Assistant」(Google 助理)。(畫面上會顯示 Google 助理互動視窗)。

  6. 在「隱式叫用」區段中,新增意圖。

    圖 4 Google 助理整合互動視窗上「隱式叫用」部分的螢幕截圖。

定義動作時,請遵循以下限制和規範:

  • 請勿在叫用詞組中加入保留字詞
    • 例如,請勿使用「talk to」或「let me talk to」來啟動叫用詞組。
  • 請勿指定僅包含 @sys.any 實體的訓練詞組。
    • 請以更具體的方式說明,例如 find recipes for @sys.any

處理無法辨識的動作

如果使用者嘗試叫用動作無法辨識的動作,Dialogflow 可以觸發意圖處理這些情況。

如要啟用這項行為,請使用 google_assistant_welcome 的輸入背景資訊建立新的意圖,並指定適當的回應給使用者:

  1. 在導覽選單中,按一下「Intents」(意圖)
  2. 按一下「Create Intent」(建立意圖),並為意圖命名。
  3. 在「Contexts」(背景資訊) 區段中,將 google_assistant_welcome 指定為輸入背景資訊,然後按下 Enter 鍵。(輸入輸入背景資訊後,google_assistant_welcome 會顯示為輸出背景資訊)。
  4. 按一下「x」x移除該輸出背景資訊。

  5. 在「訓練詞組」中,新增 banana (或任何其他名詞) 做為使用者運算式。

  6. 按兩下 banana,然後選取 @sys.any。(我們會使用 @sys.any 實體指示 Dialogflow 將運算式一般化為任何文法,而非只使用 banana)。

  7. 在「Response」區段,使用 $any 指定回應。例如,請使用以下回應:

    • I'm sorry, I don't know how to help with $any.

  8. 點按「儲存」