Invites

Les requêtes définissent comment votre action affiche les réponses aux utilisateurs et comment votre action l'invite à continuer. À mesure que vous créez votre action, vous pouvez ajouter des invites d'appels et à différents endroits dans des scènes. Les requêtes peuvent être aussi simples qu’un texte ou la réponse vocale, ou être plus complexes et contenir du contenu enrichi comme des cartes, des images et des tableaux.

Types de réponses

Pour chaque requête, vous pouvez choisir parmi différents types de réponses engageantes pour Assistant à présenter aux utilisateurs:

  • Réponses simples: les réponses simples prennent la forme d'une bulle de chat. et utiliser la synthèse vocale (TTS) ou le langage de balisage de synthèse vocale (SSML) pour le son. Les réponses simples sont les seules réponses acceptées sur tous les types d'appareils.
  • Réponses enrichies : les réponses enrichies contiennent des éléments visuels ou fonctionnels qui : améliorer les interactions des utilisateurs avec vos actions. Avec les réponses enrichies, vous pouvez également afficher des données tabulaires ou lire des contenus audio de plus longue durée.
  • Réponses par sélection visuelle: les réponses par sélection visuelle fournissent une permettant aux utilisateurs de choisir parmi les options les plus facilement différenciées par leur titre ou par une image.
  • Réponses multimédias: les réponses multimédias permettent à vos actions de lire des contenus audio plus longs. contenu que SSML et fournissent un composant visuel avec des commandes multimédias.
  • Interactive Canvas: Interactive Canvas affiche les réponses en plein écran. et fonctionne comme une application Web interactive envoyée par l'Assistant à l'utilisateur dans la conversation. Canvas utilise une requête légèrement différente pour s'adapter aux normes Web telles que HTML, CSS et JavaScript.

Chacun de ces types de réponses utilise le même format de requête de base et a accès à les mêmes fonctionnalités générales décrites ci-dessous.

Format d'une requête

Dans votre projet Actions, vous définissez des requêtes au format YAML ou JSON. Chaque peut contenir jusqu'à deux réponses simples et définir, si vous le souhaitez, une de réponse. Les réponses sont définies comme suit:

  • first_simple: réponse textuelle ou vocale (simple) initiale à envoyer à l'utilisateur.
  • content: contenu de réponse enrichi supplémentaire à envoyer après des réponses simples.
  • last_simple Réponse textuelle ou vocale (simple) finale à envoyer à l'utilisateur
  • canvas: référence une application Web qui s'intègre à Interactive Canvas.

Par défaut, les invites sont ajoutées les unes aux autres dans l'ordre indiqué ci-dessus. file d'attente. Avant que l'utilisateur puisse répondre, l'Assistant lui présente toutes les invites dans la file d'attente d'invites.

Vous bénéficiez également d'une plus grande flexibilité pour la requête à l'aide des fonctionnalités suivantes:

  • Candidats: ils vous permettent de définir des réponses en fonction d'un les capacités de l'appareil de l'utilisateur. Vous pouvez, par exemple, afficher l'Assistant des réponses uniquement lorsqu'un utilisateur interagit avec votre action sur un écran appareil.
  • Variantes: il s'agit de variantes d'un même message. Par exemple, vous pouvez demander à l'Assistant de choisir entre cinq messages d'accueil différents des variantes de message chaque fois qu'un utilisateur appelle votre action.
  • Suggestions: les suggestions fournissent aux utilisateurs des fonctionnalités d'affichage. appareils avec des chips de suggestion lorsque l'Assistant affiche l'invite.

Une requête par défaut utilise une proposition, une variante et une réponse first_simple.

Candidats

Dans une requête, l'objet candidates vous permet de définir des réponses en fonction d'une les capacités de l'appareil de l'utilisateur. Vous pouvez, par exemple, afficher l'Assistant des réponses uniquement lorsqu'un utilisateur interagit avec votre action sur un écran appareil. Pour définir les types d'appareils sur lesquels l'Assistant peut renvoyer un candidat, utilisez la propriété selector de l'objet candidates.

Dans l'exemple ci-dessous, la propriété selector contient la capacité de l'appareil. des informations. Les invites définies dans le premier candidat sont envoyées aux utilisateurs sur un appareil capable d'afficher des réponses enrichies. La deuxième proposition contient des invites pour qui ne peuvent recevoir que des réponses textuelles et vocales.

YAML

candidates:
  - selector:
      surface_capabilities:
        capabilities:
          - RICH_RESPONSE
    first_simple:
      variants:
        - speech: Here's a simple message.
    content:
      card:
        title: Image card title
        text: Some details about the image
        image:
          url: 'https://www.example.com/image/'
  - first_simple:
      variants:
        - speech: Text explains what the image might have shown in more detail.
    

JSON

{
  "candidates": [{
    "selector": {
      "surface_capabilities": {
        "capabilities": ["RICH_RESPONSE"]
      }
    },
    "first_simple": {
      "variants": [{
        "speech": "Here's a simple message."
      }]
    },
    "content": {
      "card": {
        "title": "Image card title",
        "text": "Some details about the image",
        "image": {
          "url": "https://www.example.com/image/"
        }
      }
    }
  }, {
    "first_simple": {
      "variants": [{
        "speech": "Text explains what the image might have shown in more detail."
      }]
    }
  }]
}
    

Vous pouvez indiquer une ou plusieurs capacités requises pour un candidat donné. La La liste suivante décrit chacune des fonctionnalités requises:

  • SPEECH: l'appareil peut communiquer avec l'utilisateur via la synthèse vocale ou SSML.
  • RICH_RESPONSE: l'appareil peut afficher des réponses enrichies, comme des fiches, des listes et tableaux.
  • LONG_FORM_AUDIO: l'appareil peut lire des contenus audio longs comme de la musique et les podcasts.
  • INTERACTIVE_CANVAS: l'appareil peut afficher une réponse Interactive Canvas.
  • WEB_LINK: l'appareil peut utiliser des liens Web dans des réponses enrichies pour ouvrir un navigateur Web.
  • HOME_STORAGE: l'appareil peut stocker des données dans l'espace de stockage personnel et y accéder.

Variantes

Les variantes permettent de définir plusieurs versions d'une réponse. Lorsque l'Assistant envoie la requête à un utilisateur, l'une des variantes est choisie au hasard. Nous vous recommandons s'entraîner à concevoir des conversations, fournir aux utilisateurs des réponses alternatives lorsque ils discutent avec votre action.

Par exemple, fournissez différentes variantes de message de bienvenue afin que les utilisateurs n'entendent pas la même réponse chaque fois qu'ils appellent votre action:

YAML

candidates:
  - first_simple:
      variants:
        - speech: Hello.
        - speech: Hi there.
        - speech: Welcome.
    

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Hello."
      },{
        "speech": "Hi there."
      },{
        "speech": "Welcome."
      }]
    }
  }]
}
    

Suggestions

Exemples de chips de suggestion sur un écran connecté

Les suggestions fournissent aux utilisateurs d'appareils dotés de fonctionnalités d'affichage des chips de suggestion lorsqu'ils L'Assistant affiche l'invite. Utilisez les chips de suggestion pour indiquer les réponses des utilisateurs aux poursuivre ou faire pivoter la conversation. Lorsque l'utilisateur appuie dessus, un chip de suggestion renvoie le affiché mot pour mot la conversation, comme si l'utilisateur l'avait saisi.

Vous pouvez avoir jusqu'à huit suggestions dans une même requête, chacune avec une limite maximale de 25 caractères en texte brut.

Pour ajouter une suggestion, fournissez un objet Suggestion contenant chaque dans un champ title distinct. Chaque titre doit être unique parmi l'ensemble de chips de suggestion. Dans Actions Builder, cet objet est représenté en YAML. JSON en tant que suggestions.

Par exemple, vous pouvez indiquer "Oui". et "Non" suggestions à côté d'une question:

YAML

candidates:
  - first_simple:
      variants:
        - speech: 'Welcome, do you want to play a game?'
    suggestions:
      - title: 'Yes'
      - title: 'No'
    

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Welcome, do you want to play a game?"
      }]
    },
    "suggestions": [{
      "title": "Yes"
    }, {
      "title": "No"
    }]
  }]
}