Definisci azioni (Dialogflow)

Le azioni sono punti di ingresso nell'app che definiscono il modello di chiamata e rilevamento dell'app. Le azioni vengono dichiarate in un file JSON noto come pacchetto di azioni, che in seguito carichi nel progetto sviluppatore quando vuoi testare o inviare il progetto Actions per l'approvazione. Un pacchetto Azione è un file JSON che definisce le azioni nel progetto Actions.

Per definire le azioni nel pacchetto Azioni, devi creare un intent che definisca il modo in cui viene richiamata l'Azione e l'endpoint di fulfillment corrispondente per quando viene attivato l'intent. Puoi creare i seguenti tipi di azioni:

  • Azione predefinita: ogni progetto di Actions deve avere un intent di benvenuto che funga da punto di ingresso per consentire agli utenti di avviare conversazioni. L'intent di benvenuto viene attivato quando gli utenti richiamano esplicitamente un'azione pronunciandone il nome (ad esempio, "Hey Google, parla con ExampleAction"). Questo intent di benvenuto è identificato con il nome dell'intent actions.intent.MAIN.
  • Azioni aggiuntive per i link diretti: puoi creare azioni aggiuntive nel tuo pacchetto Azioni con intent da te definiti. Ciò consente agli utenti di richiamare una funzionalità specifica pronunciando un nome dell'azione insieme a un intent (ad esempio: "Hey Google, parla con ExampleAction per trovare delle scarpe").

Vedi Intent e chiamate per ulteriori informazioni su come funzionano questi modelli di chiamata.

Definisci un'azione predefinita

Ogni pacchetto Azioni deve avere un solo intent che gestisca l'intent actions.intent.MAIN. Questo intent viene attivato quando gli utenti richiamano la tua azione per nome (ad esempio, "Hey Google, parla con ExampleAction").

Per generare un file del pacchetto di azioni boilerplate denominato action.json, svolgi i seguenti passaggi:

  1. Scarica l'interfaccia a riga di comando di gactions.
  2. Crea una directory locale per i file di origine del progetto dell'azione.
  3. Esegui questi comandi nel terminale:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Dopo aver generato il file del pacchetto azioni, sostituisci i contenuti segnaposto con i tuoi valori. Ecco un esempio di action.json con modifiche per 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"
}

Definisci azioni aggiuntive

Puoi fornire azioni aggiuntive che fungono da punti di ingresso. In questo modo gli utenti possono disambiguare il loro intento consentendo loro di specificare maggiori dettagli su cosa vogliono fare (ad esempio, "Hey Google, parla con ExampleAction per trovarmi delle scarpe".).

Per definire azioni aggiuntive:

  1. Nell'array actions, specifica un'azione per ogni punto di ingresso.

    Ad esempio, il seguente codice mostra un'azione "buy" aggiuntiva che definisce:
    • Il nome dell'intent com.example.ExampleAction.BUY
    • parameters per analizzare l'input utente quando viene attivato questo intent. Questo è utile se hai bisogno di dati specifici della frase Action quando gli utenti richiamano l'Azione.
    • queryPatterns che definiscono ciò che gli utenti devono dire per attivare l'intent. I pattern di query possono includere tipi di schema.org che definiscono i parametri da analizzare.
    {
      "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. Specifica il fulfillment per questo intent specificando un valore conversationName che corrisponde a un elemento nell'oggetto conversations.

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

Ecco un esempio di pacchetto Azione completo:

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