Zdefiniuj działania (Dialogflow)

Działania to punkty wejścia do aplikacji, które definiują wywoływanie i odkrywanie dla Twojej aplikacji. Deklarujesz działania w pliku JSON o nazwie pakiet działań, który prześlesz później do swojego projektu programistycznego, by przetestować lub przesłać swój projekt w Actions do zatwierdzenia. Pakiet akcji to plik JSON, definiuje działania w projekcie Actions.

Aby zdefiniować działania w pakiecie akcji, musisz utworzyć intencję, która określa, działanie i odpowiedni punkt końcowy realizacji, dla którego intencja użytkownika. Możesz tworzyć te typy akcji:

  • Działanie domyślne: każdy projekt w Actions musi mieć intencję powitalną, która działa jako punkt wyjścia do rozpoczęcia rozmowy. Intencja powitalna: wywoływane, gdy użytkownik jawnie wywoła działanie przez wypowiedzenie jego nazwy (na na przykład „OK Google, porozmawiaj z ExampleAction”). Ta intencja powitalna jest rozpoznawana za pomocą: nazwę intencji actions.intent.MAIN.
  • Dodatkowe działania związane z precyzyjnymi linkami: dodatkowe działania możesz tworzyć w pakietu akcji z określonymi przez Ciebie intencjami. Dzięki temu użytkownicy aby wywołać określoną funkcję przez wypowiedzenie nazwy akcji wraz z intencją (na przykład: „OK Google, porozmawiaj z aplikacją ExampleAction, aby znaleźć buty”).

Więcej informacji znajdziesz w sekcji Intencje i wywołania. które działają.

Zdefiniuj działanie domyślne

Każdy pakiet akcji musi mieć tylko jedną intencję, która obsługuje Intencja actions.intent.MAIN. Ta intencja jest wyzwalana, gdy użytkownicy wywołają Twoją działanie według nazwy (na przykład „OK Google, porozmawiaj z ExampleAction”);

Aby wygenerować stały plik pakietu akcji o nazwie action.json, wykonaj następujące kroki:

  1. Pobierz interfejs wiersza poleceń gactions.
  2. Utwórz katalog lokalny na pliki źródłowe projektu akcji.
  3. Uruchom w terminalu te polecenia:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Po wygenerowaniu pliku pakietu działań zastąp zawartość zastępczą . Oto przykład danych action.json ze zmianami wprowadzonymi w elemencie ExampleAction:

{
  "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"
}

Zdefiniuj dodatkowe działania

Możesz dodać dodatkowe akcje, które będą działać jako punkty wejścia. Dzięki temu użytkownicy mogą bardziej precyzyjnie określić ich intencje, pokazując im więcej szczegółów które chcesz zrobić (na przykład „OK Google, porozmawiaj z użyciem ExampleAction”, aby znaleźć buty”.

Aby zdefiniować dodatkowe działania:

  1. W tablicy actions określ działanie dla każdego punktu wejścia.

    Na przykład ten kod zawiera dodatkową informację „Kup” Działanie, które określa:
    • Nazwa intencji: com.example.ExampleAction.BUY
    • parameters, aby przeanalizować dane wejściowe użytkownika po aktywowaniu tej intencji. Przydaje się to, gdy potrzebujesz konkretnych danych z wyrażeń zachęcających do działania, użytkownicy wywołują działanie.
    • queryPatterns, które określają, co użytkownik musi powiedzieć, aby wywołać intencję. Wzorce zapytań mogą obejmować typy schema.org które definiują parametry do przeanalizowania.
    {
      "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. Określ realizację dla tej intencji, określając conversationName odpowiadający elementowi w obiekcie conversations.

    {
      "conversations": {
        "ExampleAction": {
          "name": "ExampleAction",
          "url": "https://www.example.com/ExampleAction"
        }
      }
    }
        

Oto przykład pełnego pakietu Action:

{
  "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"
}