Działania konwersacyjne zostaną wycofane 13 czerwca 2023 r. Więcej informacji znajdziesz w artykule o zachodzie słońca między rozmowami.

Zdefiniuj działania (Dialogflow)

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Działania to punkty wejścia do aplikacji, które definiują model wywoływania i odkrywania aplikacji. Deklarujesz akcje w pliku JSON nazywanym pakietem działań, który następnie prześlesz do projektu dewelopera, aby go przetestować lub przesłać do zatwierdzenia. Pakiet działań to plik JSON, który definiuje działania w projekcie Actions.

Aby zdefiniować działania w pakiecie działań, musisz utworzyć intencję definiującą sposób wywoływania działania i odpowiedni punkt końcowy realizacji, do którego wywołana jest intencja. Możesz tworzyć takie rodzaje działań:

  • Akcja domyślna: każdy projekt Actions musi mieć intencję powitalną, która może służyć za punkt wyjścia do rozpoczynania rozmów. Intencja powitalna jest wywoływana, gdy użytkownik jednoznacznie wywoła akcję, wypowiadając jej nazwę (np. „OK Google, talk to ExampleAction”). Ta intencja powitalna jest identyfikowana przez nazwę intencji actions.intent.MAIN.
  • Dodatkowe działania związane z precyzyjnymi linkami: w pakiecie „Action” możesz tworzyć dodatkowe działania z intencjami, które zdefiniujesz samodzielnie. Dzięki temu użytkownicy mogą wywoływać określone funkcje, wymawiając nazwę działania wraz z intencją (np. „OK Google, porozmawiaj z przykładową akcją, aby znaleźć buty”).

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

Definiowanie działania domyślnego

Każdy pakiet działań musi mieć tylko 1 intencję obsługującą intencję actions.intent.MAIN. Intencja jest wyzwalana, gdy użytkownicy wywołają działanie po nazwie (np. „OK Google, talk to ExampleAction”).

Aby wygenerować powtarzalny plik pakietu działań o nazwie action.json, wykonaj te czynności:

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

    $ cd PROJECT_DIRECTORY
    $ gactions init

Po wygenerowaniu pliku pakietu działań zastąp zawartość zastępczą wartościami. Oto przykład danych action.json ze zmianami dla strony 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 działania, które będą działać jako punkty wejścia. Dzięki temu użytkownicy mogą jasno określić, co chcą zrobić (np. „OK Google, porozmawiaj z aplikacją ExampleAction, by 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 dodatkowe działanie „Kup”, które definiuje:
    • Nazwa intencji com.example.ExampleAction.BUY
    • parameters do przeanalizowania z danych wejściowych użytkownika po uruchomieniu tej intencji. Jest to przydatne, gdy potrzebujesz określonych danych z wyrażenia akcji, gdy użytkownicy wywołają działanie.
    • queryPatterns, które określają, co użytkownicy muszą powiedzieć, by wywołać intencję. Wzorce zapytań mogą zawierać typy schema.org określające parametry do analizy.
    {
      "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 conversationName odpowiadający elementowi w obiekcie conversations.

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

Oto przykład pełnego pakietu działań:

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