Intents intégrés (Dialogflow)

Un intent intégré est un identifiant unique que vous pouvez spécifier pour indiquer au Assistant Google que votre action peut répondre à une catégorie spécifique d'utilisateurs requêtes. Par exemple, voici quelques exemples de requêtes utilisateur l'Assistant met en correspondance les intents intégrés:

  • "Jouer à ce jeu" intent intégré: "Ok Google. Lance un jeu de mémoire"
  • "Obtenir l'horoscope" intent intégré: "Ok Google. Obtenez mon horoscope"

Pendant la détection d'actions, l'Assistant peut utiliser des métadonnées sur votre action, y compris les intents intégrés que vous avez spécifiés, pour recommander votre action aux utilisateurs. Pour réduire au maximum les allers-retours au niveau des conversations, l'Assistant tente aussi d'analyser les paramètres des requêtes de l'utilisateur et les transmettre à votre action.

Pour afficher la liste complète des intents intégrés compatibles avec l'Assistant, procédez comme suit : y compris leurs paramètres et des exemples de requêtes utilisateur, consultez Documentation de référence sur les intents intégrés

Intégrer des intents intégrés

Selon la façon dont vous créez votre action, il existe différentes manières de intégrer des intents intégrés.

Dialogflow

Si vous utilisez Dialogflow pour créer votre action, vous pouvez associer un intent intégré graphiquement depuis la console Dialogflow.

Pour associer un intent intégré avec Dialogflow, procédez comme suit:

  1. Ouvrez la console Dialogflow, sélectionnez votre agent, puis accédez à Intents.
  2. Créez ou sélectionnez l'intent que votre agent déclenche lorsqu'il reçoit une un intent intégré spécifique. Ouvrez la section Événements, puis cliquez sur Ajouter Événement.

    Figure 1. Ajouter un événement Dialogflow dans la console Dialogflow
  3. Dans le champ Événements, saisissez le nom d'un événement d'intent intégré pour votre (par exemple, actions_intent_PLAY_GAME).

    Figure 2. Association d'un intent intégré à votre agent dans la console Dialogflow
  4. Cliquez sur Enregistrer.

SDK Actions

Si vous utilisez le SDK Actions pour créer votre action, vous devez spécifier le paramètre le mappage entre les intents intégrés et les actions de votre package Action.

Pour associer un intent intégré avec le SDK Actions, procédez comme suit:

  1. Spécifiez l'intent intégré dans le champ de nom de la définition de votre action.
  2. Importez votre package d'actions dans votre projet Actions à l'aide de l'outil gactions, en tant que décrites dans la présentation du SDK Actions.

Par exemple, l'extrait de code suivant montre comment ajouter CHECK_AIR_QUALITY intent intégré:

{
   "actions":[
      {
         "description":"Default Welcome Intent",
         "name":"MAIN",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.MAIN"
         }
      },
      {
         "description":"Check Air Quality",
         "name":"CHECK_AIR_QUALITY",
         "fulfillment":{
            "conversationName":"conversation_1"
         },
         "intent":{
            "name":"actions.intent.CHECK_AIR_QUALITY"
         }
      }
   ],
   "conversations":{
      "conversation_1":{
         "name":"conversation_1",
         "url":"https://example.com/fulfillment",
         "fulfillmentApiVersion":2
      }
   }
}

Gérer les paramètres d'intent intégrés

Lorsque votre action est appelée via un intent intégré, votre traitement peut reçoivent des paramètres supplémentaires. Le schéma d'intent définit les noms et leurs types en tant que types primitifs ou en tant que schema.org entités. Pour afficher le schéma des intents intégrés d'action conversationnelle, consultez la Documentation de référence sur les intents intégrés

Les paramètres des intents intégrés sont facultatifs. L'Assistant s'occupe de remplir avec des valeurs s'ils peuvent être extraits de l'appel de l'utilisateur l'intent intégré.

Par exemple, le schéma de l'instance intégrée actions.intent.CHECK_AIR_QUALITY L'intent définit quatre paramètres facultatifs:

Nom du paramètre Type
attributes Valeur de chaîne.
location Un objet schema.org/Place.
temporalCoverage Un objet schema.org/Duration.
timeIndicator Une extension spécifique à Google (EnumeratedDuration).

L'extrait de code suivant présente un exemple de webhook de conversation (JSON) lorsqu'un utilisateur appelle votre action en disant "Quelle est la qualité de l'air San Francisco demain ?":

"inputs":[
      {
         "intent":"actions.intent.CHECK_AIR_QUALITY",
         "rawInputs":[
            {
               "inputType":"VOICE",
               "query":"what is the air quality in san francisco tomorrow"
            }
         ],
         "arguments":[
            {
               "name":"location",
               "structuredValue":{
                  "geo":{
                     "longitude":-122.41941550000001,
                     "latitude":37.7749295
                  },
                  "@context":"https://schema.org",
                  "@type":"Place",
                  "name":"san francisco"
               }
            },
            {
               "name":"temporalCoverage",
               "rawText":"2018-04-25",
               "textValue":"2018-04-25"
            }
         ]
      }
   ]

Dans cet exemple, les paramètres prennent les valeurs suivantes:

  • Le paramètre location contient l'élément schema.org/Place pour "San Francisco".
  • Le paramètre temporalCoverage contient l'élément schema.org/Duration pour la date du lendemain par rapport à l'heure de l'appel.
  • Aucune valeur pour les paramètres attributes et timeIndicator car la phrase d'appel de l'utilisateur n'incluait pas ces informations.

Si vous utilisez la bibliothèque cliente Actions on Google pour Node.js, procédez comme suit : vous pouvez récupérer la valeur des paramètres, comme indiqué dans l'extrait de code suivant:

app.intent('actions.intent.CHECK_AIR_QUALITY', (conv) => {
  const attributes = conv.arguments.get('attributes');
  const location = conv.arguments.get('location');
  const temporal_coverage = conv.arguments.get('temporalCoverage');
  Const time_indicator = conv.arguments.get('timeIndicator')

  // Your Action logic. If you need to use any of the parameter values,
  // you should check first that it is defined. Arguments.get returns
  // undefined if it can't find a value for a parameter.

});

Tester les intégrations avec des intents intégrés

Pour tester votre intégration, procédez comme suit:

  1. Ouvrez le simulateur d'actions avec votre action de test activée, ou ouvrez l'Assistant sur votre appareil.
  2. Énoncez ou saisissez une requête associée à cet intent intégré. Par exemple : "Je veux jouer à un jeu."
  3. Dans la boîte de dialogue de sélection d'applications qui s'affiche, recherchez votre action.
  4. Sélectionnez votre application pour lui envoyer un intent.
Figure 3. Boîte de dialogue de sélection d'actions résultant
d'une expression d'intent intégrée
Figure 4. Appeler une action associée à un intent intégré.

Bonnes pratiques d'utilisation des intents intégrés

Vous devez suivre ces bonnes pratiques lorsque vous utilisez des intents intégrés:

  • Mapper des intents intégrés à des actions spécifiques: lorsqu'un intent intégré spécifique déclenche votre action, redirige l'utilisateur vers l'intent spécifique les fonctionnalités de l'action avec le moins de friction possible. Pour exemple, si votre action est compatible avec l'intent intégré PLAY_GAME et reçoit cet intent, vous devez rediriger immédiatement l'utilisateur vers la fonctionnalité de jeu de votre action. Évitez de demander à l'utilisateur s'il veut jouer à un jeu.
  • Gérer les paramètres d'intent intégré: assurez-vous d'utiliser l'intent intégré. que l'Assistant envoie à votre traitement. Évitez de demander à nouveau ces valeurs à l'utilisateur.