Créer des modèles de conversation

Un modèle de conversation définit ce que les utilisateurs peuvent dire à vos actions et la manière dont elles répondent aux utilisateurs. Les principaux éléments de base de votre modèle de conversation sont les intents, les types, les scènes et les invites. Une fois que l'une de vos actions est appelée, l'Assistant Google dirige l'utilisateur vers cette action. L'action entame alors une conversation avec l'utilisateur, en fonction de votre modèle de conversation, qui comprend les éléments suivants:

  • Requêtes utilisateur valides : pour définir ce que les utilisateurs peuvent dire à vos actions, vous devez créer un ensemble d'intents qui enrichissent le NLU de l'Assistant afin qu'il puisse comprendre les requêtes spécifiques à vos actions. Chaque intent définit des phrases d'entraînement décrivant ce que les utilisateurs peuvent dire pour correspondre à cet intent. La NLU de l'Assistant étend ces phrases d'entraînement pour inclure des expressions similaires. L'agrégation de ces phrases génère le modèle de langage de l'intent.

  • Logique et réponses des actions : les scènes traitent les intents, exécutent la logique requise et génèrent des invites à renvoyer à l'utilisateur.

Figure 1. Un modèle de conversation est composé d'intents, de types, de scènes et de requêtes qui définissent votre expérience utilisateur. Les intents pouvant être appelés peuvent également être mis en correspondance dans vos conversations.

Définir des requêtes utilisateur valides

Pour définir ce que les utilisateurs peuvent dire à vos actions, vous devez utiliser une combinaison d'intents et de types. Les intents et les types d'utilisateurs vous permettent d'enrichir le NLU de l'Assistant avec vos propres modèles de langage. Les intents et les types système vous permettent de tirer parti des modèles de langage intégrés et de la détection d'événements, par exemple lorsque les utilisateurs souhaitent quitter votre action ou lorsque l'Assistant ne détecte aucune entrée.

Créer des intents utilisateur

Les intents utilisateur vous permettent de définir vos propres phrases d'entraînement qui définissent ce que les utilisateurs peuvent dire à vos actions. Le NLU de l'Assistant utilise ces phrases pour s'entraîner à comprendre ce que disent vos utilisateurs. Lorsque les utilisateurs prononcent quelque chose qui correspond au modèle de langage d'un intent utilisateur, l'Assistant associe cet intent et informe votre action. Vous pouvez ainsi exécuter la logique et répondre aux utilisateurs.

Figure 1 : Exemple d'intent utilisateur

Pour créer un intent utilisateur:

  1. Dans l'onglet Développer, cliquez sur Intents utilisateur > ⊕ (Nouvel intent), spécifiez un nom, puis appuyez sur Entrée pour créer l'intent.
  2. Cliquez sur l'intent que vous venez de créer dans le menu de gauche. L'éditeur d'intents s'affiche.
  3. Ajouter des phrases d'entraînement à l'intent Ajoutez autant d'expressions d'entraînement que possible pour entraîner le NLU de l'Assistant.
  4. Facultatif: Annotez les phrases d'entraînement pour indiquer à la NLU de l'Assistant d'analyser et d'extraire les paramètres typés de l'entrée utilisateur correspondant à un type spécifié :
    1. Attribuez un nom au paramètre dans le champ Ajouter un paramètre.
    2. Sélectionnez un type de système dans le menu déroulant ou créez un type personnalisé.
    3. Indiquez si le paramètre est une liste. Cela permet au paramètre de collecter plusieurs valeurs du même type.
    4. Dans la section Add training phrases (Ajouter des phrases d'entraînement), mettez en surbrillance le texte auquel vous souhaitez appliquer le type. Cela indique à la NLU de l'Assistant de traiter le texte mis en surbrillance comme un paramètre. Si l'utilisateur dit quelque chose qui correspond au type, la NLU extrait cette valeur en tant que paramètre.

Créer des intents système

Les intents système vous permettent d'exploiter les intents avec des modèles de langage prédéfinis pour des événements courants tels que les utilisateurs qui souhaitent quitter votre action ou lorsque l'entrée utilisateur expire. Pour créer des intents système, procédez comme suit:

  1. Dans l'onglet Développer, cliquez sur Intents système. Un ensemble d'intents système est disponible, comme NO_MATCH, NO_INPUT et CANCEL.
  2. Chaque intent système contient ses propres gestionnaires, que vous pouvez personnaliser pour chaque type d'intent système. Par exemple, les intents système vous permettent de déclencher des événements de webhook et d'envoyer des invites statiques lorsque l'événement se produit.

Créer des types personnalisés

Les types personnalisés vous permettent de créer votre propre spécification de type pour entraîner la NLU à comprendre un ensemble de valeurs devant correspondre à une seule clé.

Figure 2 : Exemple de type personnalisé

Pour créer un type personnalisé:

  1. Dans l'onglet Développer, cliquez sur Types > ⊕ (Nouveau type).
  2. Sélectionnez comment fournir des valeurs de type dans la section Quel type de valeurs sont compatibles avec ce type ?:

    • Les mots et synonymes vous permettent de mapper plusieurs valeurs à une seule clé. Il s'agit d'une entrée. Votre type peut contenir une ou plusieurs entrées. Si vous choisissez cette option, vous pouvez également activer les paramètres NLU suivants :
      • Activer la correspondance partielle : cette option permet de mettre en correspondance les entrées contenant plusieurs mots, même lorsque les mots sont prononcés dans un ordre différent.
      • Accepter les valeurs inconnues : lorsque vous ne pouvez pas spécifier toutes les valeurs possibles, il accepte les mots ou expressions inconnus en fonction des données d'entrée environnantes et d'entraînement de l'intent, tels que les éléments susceptibles d'être ajoutés à une liste de courses.
    • Les expressions régulières permettent de mettre en correspondance le type avec des modèles d'expression régulière basés sur la norme RE2 de Google.
    • Texte au format libre permet au type de correspondre à tout ce qu'un utilisateur dit.
  3. Spécifiez les valeurs de type dans la section Ajouter des entrées. Si vous avez choisi Texte au format libre, votre type correspond à n'importe quel texte. Vous n'avez donc pas besoin de fournir d'entrées.

Créer une logique et des réponses d'action

Le NLU de l'Assistant met en correspondance les requêtes utilisateur et les intents, afin que votre action puisse les traiter en scènes. Les scènes sont de puissants exécuteurs de logique qui vous permettent de traiter des événements au cours d'une conversation.

Figure 3. Exemple de scène personnalisée

Créer une scène

Les sections suivantes décrivent comment créer des scènes et définir les fonctionnalités associées à l'étape du cycle de vie de chaque scène.

Pour créer une scène:

  1. Dans l'onglet Développer, cliquez sur Scènes > ⊕ (Nouvelle scène), saisissez un nom, puis appuyez sur Entrée pour créer une scène.
  2. Dans le menu de gauche, cliquez sur la scène que vous venez de créer. L'éditeur de scènes s'affiche.

Définir la configuration ponctuelle

Lorsqu'une scène devient active pour la première fois, vous pouvez effectuer des tâches ponctuelles dans l'étape On enter (Lors de l'entrée). L'étape d'entrée ne s'exécute qu'une seule fois et est la seule à ne pas s'exécuter dans la boucle d'exécution d'une scène.

  1. Dans une scène, cliquez sur l'espace de création On enter (Lors de l'entrée) pour spécifier sa fonctionnalité. Vous pouvez spécifier les fonctionnalités suivantes à ce stade:

    • Appeler votre webhook : déclenche un webhook. Pour en savoir plus, consultez la documentation sur les webhooks.
    • Envoyer des invites : spécifiez des invites statiques pour qu'il sache comment poursuivre la conversation. Pour en savoir plus sur la spécification des requêtes, consultez la documentation sur les invites.
    Figure 4. Exemple d'une scène dans l'espace de création

Vérifier les conditions

Les conditions vous permettent de vérifier les paramètres de remplissage d'emplacements, de stockage de session, de stockage utilisateur et de stockage personnel pour contrôler le flux d'exécution de la scène.

  1. Dans une scène, cliquez sur l'icône + pour l'étape Condition. L'éditeur de conditions s'affiche à droite. Vous pouvez spécifier les fonctionnalités suivantes à cette étape:

    • Condition : spécifie l'instruction conditionnelle réelle sur laquelle baser la logique. Consultez la documentation sur les conditions pour en savoir plus sur la syntaxe.
    • Appeler votre webhook : déclenche un webhook. Pour en savoir plus, consultez la documentation sur les webhooks.
    • Envoyer des invites : spécifie les invites statiques à envoyer à l'utilisateur afin qu'il sache comment poursuivre la conversation. Pour savoir comment spécifier des invites, consultez la documentation sur les invites.
    • Transition : spécifie la scène vers laquelle effectuer la transition lorsque l'instruction conditionnelle est vraie.
Figure 5 : Exemple de l'étape des conditions d'une scène

Définir le remplissage d'emplacements

Les emplacements vous permettent d'extraire des paramètres typés de l'entrée utilisateur.

Dans l'éditeur de scène, cliquez sur l'icône + de l'étape Remplissage d'emplacements. L'éditeur de l'emplacement s'affiche sur la droite. Vous pouvez spécifier les propriétés suivantes pour un emplacement:

  • Slot name (Nom de l'emplacement) : spécifie le nom de l'emplacement. Si vous souhaitez bénéficier du mappage des valeurs d'emplacements, utilisez le même nom que le paramètre d'intent correspondant.
  • Type d'emplacement:spécifie le type d'un emplacement avec un type système ou un type personnalisé.
  • Cet emplacement est obligatoire:le marque comme obligatoire. Si cette option est activée, le remplissage des emplacements ne sera pas terminé tant que cet emplacement n'aura pas été rempli.
  • Attribuer une valeur par défaut à cet emplacement:spécifie une valeur par défaut pour l'emplacement lu à partir du paramètre de session spécifié.
  • Personnaliser l'écriture de la valeur d'emplacement:spécifie un paramètre de session pour conserver la valeur de l'emplacement une fois le remplissage de celui-ci terminé.
  • Validation des emplacements:déclenchez un webhook lorsqu'un emplacement est rempli. Ce paramètre s'applique à tous les emplacements.
  • Appeler votre webhook (activé lorsque l'emplacement est requis): déclenche un webhook. Pour en savoir plus, consultez la documentation sur les webhooks.
  • Envoyer des invites (activé lorsque l'emplacement est requis): spécifie les invites statiques à envoyer à l'utilisateur afin qu'il sache comment poursuivre la conversation. Pour en savoir plus sur la spécification des requêtes, consultez la documentation sur les invites.

Pour certains types d'emplacements (comme ceux liés aux transactions ou à l'engagement utilisateur), une section supplémentaire s'affiche pour vous permettre de configurer l'emplacement. Les configurations des emplacements peuvent modifier l'expérience de conversation des utilisateurs en fonction des propriétés que vous fournissez.

Pour configurer un emplacement, fournissez les propriétés d'un objet JSON dans votre traitement (référencé en tant que paramètre de session) ou dans l'éditeur JSON intégré. Vous trouverez les propriétés disponibles pour chaque type d'emplacement dans la documentation de référence JSON d'Actions Builder. Par exemple, le type d'emplacement actions.type.DeliveryAddressValue correspond au contenu de référence de l'emplacement DeliveryAddressValue.

Figure 6 : Exemple de paramètres de remplissage d'emplacements d'une scène

Mappage des valeurs de l'emplacement

Dans de nombreux cas, une correspondance d'intent précédente peut inclure des paramètres qui remplissent partiellement ou entièrement les valeurs d'emplacement d'une scène correspondante. Dans ce cas, tous les emplacements remplis par les paramètres d'intent sont mappés avec le remplissage d'emplacements de la scène si le nom de l'emplacement correspond à celui du paramètre d'intent.

Par exemple, si un utilisateur met en correspondance un intent pour commander une boisson en disant "Je veux commander un grand café à la vanille", les emplacements existants pour la taille, le parfum et le type de boisson sont considérés comme remplis dans la scène correspondante si celle-ci définit les mêmes emplacements.

Traiter les entrées

Au cours de cette étape, vous pouvez faire en sorte que la NLU de l'Assistant mette en correspondance les entrées utilisateur et les intents. Vous pouvez définir le champ d'application d'une correspondance d'intent à une scène spécifique en ajoutant les intents souhaités à la scène. Cela vous permet de contrôler le flux de conversation en demandant à l'Assistant de faire correspondre des intents spécifiques lorsque des scènes spécifiques sont actives.

  1. Dans une scène, cliquez sur l'icône + pour l'étape Gestion des intents utilisateur ou Gestion des intents système. L'éditeur du gestionnaire d'intents s'affiche sur la droite. Vous pouvez spécifier les fonctionnalités suivantes du gestionnaire d'intents:

    • Intent : spécifie l'intent que vous souhaitez mettre en correspondance dans cette scène.
    • Appeler votre webhook : déclenche un webhook. Consultez la documentation sur les webhooks pour découvrir comment gérer une requête de webhook.
    • Envoyer des invites : spécifiez des invites statiques pour qu'il sache comment répondre. Pour en savoir plus sur la spécification des invites, consultez la documentation sur les invites.
    • Transition (le cas échéant) : spécifie la scène vers laquelle effectuer la transition lorsque l'intent spécifié correspond.
Figure 7. Exemple de gestionnaire d'intents utilisateur d'une scène
Figure 8 : Exemple de gestionnaire d'intents système d'une scène