定義動作 (Dialogflow)

動作是應用程式的進入點,可定義叫用和探索 您在名為動作套件的 JSON 檔案中宣告動作。 稍後要上傳到開發人員專案 將 Actions 專案送交核准。Action 套件是 JSON 檔案 在 Actions 專案中定義「動作」

如要在動作套件中定義動作,請建立一個意圖,以定義 系統會叫用 Action 和相應的執行要求端點, 意圖您可以建立下列類型的動作:

  • 預設動作:每個 Actions 專案都必須有歡迎意圖,藉此採取行動 做為使用者展開對話的進入點歡迎意圖 當使用者說出動作名稱來明確叫用動作時觸發 (例如 例如「Ok Google,與 ExampleAction」)。這項歡迎意圖是以 actions.intent.MAIN 意圖名稱。
  • 深層連結的其他動作:您可以在以下位置建立其他動作: 含有您自行定義的意圖的動作套件。這樣一來 藉由說出動作名稱和意圖來叫用特定功能 (例如:「Ok Google,透過 ExampleAction 尋找幾鞋」)。

如要進一步瞭解如何操作,請參閱「意圖和叫用」一文 都能順利運作

定義預設動作

每個動作套件都必須有一個和一個意圖,用於處理 actions.intent.MAIN 意圖。當使用者叫用 依名稱執行動作,例如「Ok Google,與 ExampleAction」

如要產生名稱為 action.json 的樣板動作套件檔案,請 步驟如下:

  1. 下載 gactions CLI
  2. 為 Action 專案的來源檔案建立本機目錄。
  3. 在終端機中執行下列指令:

    $ cd PROJECT_DIRECTORY
    $ gactions init

產生 Action 套件檔案後,請將預留位置內容換成 輕鬆分配獎金以下是對 ExampleAction 進行變更的 action.json 範例:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}

定義其他動作

您可以提供其他動作做為進入點。這樣一來 表達意圖,讓他們指定更多細節 自己想要執行的操作 (例如:「Ok Google,跟 ExampleAction 來找我?」 鞋。」)。

如何定義其他動作:

  1. actions 陣列中,為每個進入點指定動作。

    舉例來說,下列程式碼會顯示額外的「buy」這個動作會定義:
    • com.example.ExampleAction.BUY 的意圖名稱
    • parameters 用於在觸發這項意圖時剖析使用者輸入內容。 如果您需要在操作詞組中需要特定資料,這個方法就很實用。 使用者叫用動作
    • queryPatterns,用於定義使用者需要說什麼才能觸發意圖。 查詢模式可包含 Schema.org 類型 這個 API 會定義要剖析的參數。
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
          
  2. 請指定 conversationName,藉此指定這項意圖的執行要求 對應 conversations 物件中的一個項目。

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        
  3. 注意:通常只需要一個執行要求端點,但「動作」

以下是完整動作套件的範例:

{
  "actions": [
    {
      "description": "Default welcome intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to ExampleAction"
          ]
        }
      }
    },
    {
      "description": "Direct access",
      "name": "BUY",
      "fulfillment": {
        "conversationName": "ExampleAction"
      },
      "intent": {
        "name": "com.example.ExampleAction.BUY",
        "parameters": [
          {
            "name": "color",
            "type": "org.schema.type.Color"
          }
        ],
        "trigger": {
          "queryPatterns": [
            "find some $org.schema.type.Color:color sneakers",
            "buy some blue suede shoes",
            "get running shoes"
          ]
        }
      }
    }
  ],
  "conversations": {
    "ExampleAction": {
      "name": "ExampleAction",
      "url": "https://www.example.com/ExampleAction"
    }
  },
  "locale": "en"
}