Définir des actions (Dialogflow)

Les actions sont des points d'entrée dans votre application qui définissent le modèle d'appel et de découverte de votre application. Les actions sont déclarées dans un fichier JSON appelé package d'actions, que vous importez ensuite dans votre projet de développeur lorsque vous souhaitez tester ou envoyer votre projet Actions pour approbation. Un package d'actions est un fichier JSON qui définit les actions dans votre projet Actions.

Pour définir des actions dans votre package d'actions, vous devez créer un intent qui définit la manière dont l'action est appelée et le point de terminaison de traitement correspondant lorsque l'intent est déclenché. Vous pouvez créer les types d'actions suivants:

  • Action par défaut:chaque projet Actions doit comporter un intent de bienvenue qui sert de point d'entrée aux utilisateurs pour lancer des conversations. L'intent d'accueil est déclenché lorsque les utilisateurs appellent explicitement une action en prononçant son nom (par exemple, "Hey Google, parle à ExempleAction"). Cet intent d'accueil est identifié par le nom de l'intent actions.intent.MAIN.
  • Actions supplémentaires pour les liens profonds:vous pouvez créer des actions supplémentaires dans votre package d'actions avec des intents que vous définissez vous-même. Cela permet aux utilisateurs d'appeler une fonctionnalité spécifique en énonçant le nom d'une action avec un intent (par exemple: "Hey Google, parle à ExempleAction pour trouver des chaussures").

Pour en savoir plus sur le fonctionnement de ces modèles d'appel, consultez la section Intents et appels.

Définir une action par défaut

Chaque package d'actions doit avoir un seul intent qui gère l'intent actions.intent.MAIN. Cet intent est déclenché lorsque les utilisateurs appellent votre action en indiquant son nom (par exemple, "Hey Google, parle à ExampleAction").

Pour générer un fichier de package d'actions récurrent nommé action.json, procédez comme suit:

  1. Téléchargez la CLI gactions.
  2. Créez un répertoire local pour les fichiers sources de votre projet d'action.
  3. Exécutez les commandes suivantes dans le terminal:

    $ cd PROJECT_DIRECTORY
    $ gactions init

Une fois le fichier du package d'actions généré, remplacez le contenu de l'espace réservé par vos valeurs. Voici un exemple de action.json avec des modifications pour 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"
}

Définir des actions supplémentaires

Vous pouvez fournir des actions supplémentaires qui servent de points d'entrée. Cela permet aux utilisateurs de préciser leur intention en leur permettant d'indiquer plus de détails sur ce qu'ils souhaitent faire (par exemple, "Hey Google, parle à ExempleAction pour me trouver des chaussures").

Pour définir des actions supplémentaires:

  1. Dans le tableau actions, spécifiez une action pour chaque point d'entrée.

    Par exemple, le code suivant montre une action "buy" supplémentaire qui définit :
    • Un nom d'intent de com.example.ExampleAction.BUY
    • parameters à analyser à partir de l'entrée utilisateur lorsque cet intent est déclenché. Cela est utile si vous avez besoin de données spécifiques de l'expression d'action lorsque les utilisateurs l'appellent.
    • queryPatterns, qui définissent ce que les utilisateurs doivent dire pour déclencher l'intent. Les formats de requête peuvent inclure des types Schema.org qui définissent les paramètres à analyser.
    {
      "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. Spécifiez le traitement pour cet intent en spécifiant un conversationName correspondant à un élément de l'objet conversations.

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

Voici un exemple de package d'actions complet:

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