Actions conversationnelles

Les actions de conversation vous permettent d'intégrer l'Assistant Google à vos propres interfaces de conversation afin que les utilisateurs puissent accéder à vos produits et services. Les actions exploitent le puissant moteur de compréhension du langage naturel (NLU) de l'Assistant pour traiter et comprendre les entrées en langage naturel, et effectuer des tâches en fonction de ces entrées.

Présentation

Une action de conversation est un objet simple qui définit un point d'entrée (appelé appel) dans une conversation:

  • Un appel définit la manière dont les utilisateurs indiquent à l'Assistant qu'ils souhaitent démarrer une conversation avec l'une de vos actions. L'appel d'une action est défini par un seul intent qui est mis en correspondance lorsque les utilisateurs demandent l'action.
  • Une conversation définit la manière dont les utilisateurs interagissent avec une action après son appel. Vous créez des conversations avec des intents, des types, des scènes et des invites.
  • En outre, vos actions peuvent déléguer des tâches supplémentaires au fulfillment, qui est des services Web qui communiquent avec vos actions via des webhooks. Cela vous permet de valider des données, d'appeler d'autres services Web, d'exécuter une logique métier, etc.

Regroupez une ou plusieurs actions, en fonction des cas d'utilisation importants pour vos utilisateurs, dans un conteneur logique appelé "projet Actions". Votre projet Actions contient l'intégralité de votre modèle d'appel (l'ensemble regroupant tous vos appels), ce qui permet aux utilisateurs de commencer à des endroits logiques de votre modèle de conversation (toutes les choses que les utilisateurs peuvent dire et toutes les manières possibles de leur répondre).

Figure 1. Ensemble d'actions qui servent de points d'entrée dans un modèle de conversation. Les intents pouvant être appelés sont considérés comme globals.

Appel

L'appel est associé à un nom à afficher représentant une marque, un nom ou un personnage permettant aux utilisateurs de demander à l'Assistant d'appeler vos actions. Les utilisateurs peuvent utiliser ce nom à afficher seul (appelé principal) ou en combinaison avec des liens profonds facultatifs pour appeler vos actions.

Par exemple, les utilisateurs peuvent prononcer les expressions suivantes pour appeler trois actions distinctes dans un projet portant le nom à afficher "Facts about Google":

  • "Ok Google, parle de Facts about Google"
  • "Ok Google, parle à Facts about Google pour obtenir des informations sur l'entreprise."
  • "Ok Google, parle à Facts about Google pour obtenir des anecdotes historiques"

Le premier appel de cet exemple est l'appel principal. Cet appel est associé à un intent système spécial nommé actions.intent.MAIN. Les deuxième et troisième appels sont des liens profonds qui vous permettent de spécifier des expressions supplémentaires permettant aux utilisateurs de demander une fonctionnalité spécifique. Ces appels correspondent aux intents utilisateur que vous avez désignés comme globaux. Dans cet exemple, chaque appel fournit un point d'entrée dans une conversation et correspond à une seule action.

Figure 2. Exemple d'appel principal

La figure 2 décrit un flux d'appel principal classique:

  1. Lorsque les utilisateurs demandent une action, ils la demandent généralement à l'Assistant via votre nom à afficher.
  2. L'Assistant associe la requête de l'utilisateur à l'intent correspondant. Dans ce cas, il s'agit de actions.intent.MAIN.
  3. L'action est informée de la correspondance d'intent et répond avec l'invite correspondante pour démarrer une conversation avec l'utilisateur.

Conversation

La conversation définit la manière dont les utilisateurs interagissent avec une action après son appel. Pour créer ces interactions, vous devez définir l'entrée utilisateur valide pour votre conversation, la logique de traitement de cette entrée et les invites correspondantes à utiliser pour répondre à l'utilisateur. La figure et l'explication suivantes vous montrent comment fonctionne un tour de conversation classique avec les composants de bas niveau d'une conversation: intents, types, scènes et invites.

Figure 3. Exemple de conversation

La figure 3 décrit un tour de conversation type:

  1. Lorsque l'utilisateur dit quelque chose, le NLU de l'Assistant associe l'entrée à un intent approprié. Un intent est mis en correspondance si son modèle de langage peut correspondre exactement ou étroitement à l'entrée utilisateur. Pour définir le modèle de langage, vous devez spécifier des expressions d'entraînement ou des exemples de phrases que les utilisateurs pourraient avoir. L'Assistant développe et développe ces phrases d'entraînement pour créer le modèle de langage de l'intent.
  2. Lorsque le NLU de l'Assistant correspond à un intent, il peut extraire de l'entrée les paramètres dont vous avez besoin. Ces paramètres sont associés à des types, tels qu'une date ou un nombre. Vous annotez des parties spécifiques des phrases d'entraînement d'un intent pour spécifier les paramètres que vous souhaitez extraire.
  3. Une scène traite ensuite l'intent correspondant. Vous pouvez considérer les scènes comme les exécuteurs logiques d'une action, qui font le gros du travail et exécutent la logique nécessaire pour faire avancer une conversation. Les scènes s'exécutent en boucle, ce qui fournit un cycle de vie d'exécution flexible qui vous permet, entre autres, de valider les paramètres d'intent, de remplir des emplacements, de renvoyer des requêtes à l'utilisateur.
  4. Une fois l'exécution d'une scène terminée, elle renvoie généralement aux utilisateurs une invite leur demandant de poursuivre la conversation ou, le cas échéant, d'y mettre fin.

Traitement

Lors d'un appel ou d'une conversation, votre action peut déclencher un webhook qui informe un service de fulfillment d'effectuer certaines tâches.

Figure 4. Exemple de conversation

La figure 4 explique comment utiliser le fulfillment pour générer des requêtes, qui est un moyen courant d'utiliser le fulfillment:

  1. À des moments spécifiques de l'exécution de votre action, elle peut déclencher un webhook qui envoie une requête à un gestionnaire de webhook enregistré (votre service de fulfillment) avec une charge utile JSON.
  2. Le traitement traite la requête, par exemple en appelant une API REST pour rechercher des données ou en validant des données à partir de la charge utile JSON. Une façon très courante d'utiliser le fulfillment consiste à générer une invite dynamique au moment de l'exécution afin que vos conversations soient mieux adaptées à l'utilisateur actuel.
  3. Le traitement renvoie une réponse à votre action contenant une charge utile JSON. Elle peut utiliser les données de la charge utile pour poursuivre son exécution et répondre à l'utilisateur.