Zdefiniuj działania (Dialogflow)

Akcje to punkty wejścia do aplikacji definiujące model wywołania i odkrywania. Działania zadeklarujesz w pliku JSON o nazwie Pakiet akcji, który następnie przesyłasz do projektu dewelopera, gdy chcesz go przetestować lub przesłać do zatwierdzenia projekt Actions. Pakiet akcji to plik JSON, który określa działania w projekcie Actions.

Aby zdefiniować działania w pakiecie akcji, utwórz intencję definiującą sposób wywoływania akcji i odpowiadający jej punkt końcowy realizacji w przypadku wywołania intencji. Możesz tworzyć następujące typy działań:

  • Działanie domyślne: każdy projekt w Actions musi mieć intencję powitalną działającą jako punkt wejścia użytkowników do rozpoczynania rozmów. Intencja powitalna jest wywoływana, gdy użytkownik wprost wywoła akcję, wypowiadając jej nazwę (np. „OK Google, talk to ExampleAction”). Ta intencja powitalna jest identyfikowana z nazwą intencji actions.intent.MAIN.
  • Dodatkowe działania na potrzeby precyzyjnych linków: w pakiecie akcji możesz tworzyć dodatkowe działania z intencjami, które samodzielnie definiujesz. Dzięki temu użytkownicy mogą wywołać określone funkcje, wypowiadając nazwę akcji wraz z intencją (na przykład: „OK Google, porozmawiaj z przykładową akcje, by znaleźć buty”).

Więcej informacji o działaniu tych modeli wywołań znajdziesz w sekcji Intencje i wywołanie.

Określanie działania domyślnego

Każdy pakiet akcji musi mieć 1 intencję, która obsługuje intencję actions.intent.MAIN. Intencja jest wyzwalana, gdy użytkownicy wywołają akcję, korzystając z nazwy (na przykład „OK Google, talk to ExampleAction”).

Aby wygenerować plik pakietu akcji o nazwie action.json, wykonaj te czynności:

  1. Pobierz gactions CLI.
  2. Utwórz katalog lokalny na pliki źródłowe projektu Action.
  3. Uruchom te polecenia w terminalu:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Po wygenerowaniu pliku pakietu akcji zastąp treść zastępczą odpowiednimi wartościami. Oto przykład danych action.json ze zmianami dla 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 podać dodatkowe akcje pełniące funkcję punktów wejścia. Dzięki temu użytkownicy mogą precyzyjniej określić, co chcą zrobić (np. „OK Google, porozmawiaj z przykładową akcje, by znaleźć mi buty”).

Aby zdefiniować dodatkowe działania:

  1. W tablicy actions określ akcję dla każdego punktu wejścia.

    Na przykład ten kod zawiera dodatkowe działanie „buy”, które definiuje:
    • Nazwa intencji: com.example.ExampleAction.BUY
    • parameters, aby przeanalizować dane wejściowe użytkownika po uruchomieniu tej intencji. Jest to przydatne, gdy potrzebujesz określonych danych z wyrażenia działania, gdy użytkownicy wywołują to działanie.
    • queryPatterns, które określają, co użytkownicy muszą powiedzieć, aby aktywować intencję. Wzorce zapytań mogą zawierać typy schema.org określające 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ę tej intencji, określając element conversationName odpowiadający elementowi w obiekcie conversations.

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

Oto przykład pełnego pakietu akcji:

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