Aktionen definieren (Dialogflow)

Aktionen sind Einstiegspunkte zu Ihrer App, die das Aufruf- und Erkennungsmodell für Ihre App definieren. Sie deklarieren Aktionen in einer JSON-Datei, auch als Aktionspaket bezeichnet. Diese Datei laden Sie später in Ihr Entwicklerprojekt hoch, wenn Sie Ihr Actions-Projekt testen oder zur Genehmigung einreichen möchten. Ein Aktionspaket ist eine JSON-Datei, die die Aktionen in Ihrem Actions-Projekt definiert.

Um Aktionen im Aktionspaket zu definieren, erstellen Sie einen Intent, der definiert, wie die Aktion aufgerufen wird und den entsprechenden Auftragsausführungsendpunkt für das Auslösen des Intents definiert. Sie können die folgenden Arten von Aktionen erstellen:

  • Standardaktion:Jedes Actions-Projekt muss einen Begrüßungs-Intent haben, der Nutzern als Einstiegspunkt für Unterhaltungen dient. Der Begrüßungs-Intent wird ausgelöst, wenn Nutzer eine Aktion explizit aufrufen, indem sie ihren Namen aussprechen (z. B. "Hey Google, sprich mit ExampleAction"). Dieser Begrüßungs-Intent wird durch den Namen des Intents actions.intent.MAIN identifiziert.
  • Zusätzliche Aktionen für Deeplinks:Sie können in Ihrem Aktionspaket zusätzliche Aktionen mit selbst definierten Intents erstellen. Nutzer können dann bestimmte Funktionen aufrufen, indem sie einen Aktionsnamen zusammen mit einem Intent sagen (z. B. „Hey Google, sprich mit Schuhen, um Schuhe zu finden“).

Weitere Informationen zur Funktionsweise dieser Aufrufmodelle finden Sie unter Intents und Aufrufe.

Standardaktion festlegen

Jedes Aktionspaket darf nur einen Intent enthalten, der den Intent actions.intent.MAIN verarbeitet. Dieser Intent wird ausgelöst, wenn Nutzer Ihre Aktion anhand des Namens aufrufen (z. B. „Hey Google, sprich mit ExampleAction“).

So generieren Sie eine Boilerplate-Aktionspaketdatei mit dem Namen action.json:

  1. Laden Sie die gactions-Befehlszeile herunter.
  2. Erstellen Sie ein lokales Verzeichnis für die Quelldateien Ihres Aktionsprojekts.
  3. Führen Sie im Terminal die folgenden Befehle aus:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Ersetzen Sie den Platzhalterinhalt durch Ihre Werte, nachdem die Aktionspaketdatei generiert wurde. Hier ein Beispiel für action.json mit Änderungen für 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"
}

Zusätzliche Aktionen definieren

Sie können zusätzliche Aktionen angeben, die als Einstiegspunkte dienen. Auf diese Weise können Nutzer ihre Absicht unterscheiden, indem sie mehr Details dazu angeben können, was sie tun möchten (z. B. "Hey Google, sprich mit ExampleAction, um mir ein paar Schuhe zu suchen.").

So definieren Sie zusätzliche Aktionen:

  1. Geben Sie im Array actions für jeden Einstiegspunkt eine Aktion an.

    Der folgende Code zeigt beispielsweise eine zusätzliche „buy“-Aktion, die Folgendes definiert:
    • einen Intent-Namen von com.example.ExampleAction.BUY
    • parameters zum Parsen der Nutzereingabe, wenn dieser Intent ausgelöst wird. Dies ist nützlich, wenn du bestimmte Daten aus der Aktionsformulierung benötigst, wenn Nutzer die Aktion aufrufen.
    • queryPatterns definieren, was Nutzer sagen müssen, um den Intent auszulösen. Abfragemuster können Schema.org-Typen enthalten, die zu parsende Parameter definieren.
    {
      "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. Geben Sie die Auftragsausführung für diesen Intent an. Dazu geben Sie einen conversationName an, der einem Element im conversations-Objekt entspricht.

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

Hier ist ein Beispiel für ein vollständiges Aktionspaket:

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