Los mensajes definen la forma en que tu acción renderiza las respuestas para los usuarios y cómo tu acción las invita a continuar. A medida que compilas tu acción, puedes agregar mensajes a invocaciones y a varios lugares dentro de las escenas. Los mensajes pueden ser tan simples como una respuesta de texto o voz, o pueden ser más complejos y tener contenido enriquecido, como tarjetas, imágenes y tablas.
Tipos de respuesta
En cada mensaje, selecciona entre diversos tipos de respuestas atractivas para que Asistente presente a los usuarios:
- Respuestas simples: Las respuestas simples toman la forma de una burbuja de chat de forma visual y usan texto a voz (TTS) o el lenguaje de marcado de síntesis de voz (SSML) para el sonido. Las respuestas simples son las únicas respuestas admitidas en todos los tipos de dispositivos.
- Respuestas enriquecidas: Las respuestas enriquecidas contienen elementos visuales o funcionales que mejoran las interacciones de los usuarios con tus acciones. Con las respuestas enriquecidas, también puedes mostrar datos tabulares o reproducir contenido de audio de formato más largo.
- Respuestas de selección visual: Las respuestas de selección visual proporcionan una interfaz visual para que los usuarios elijan entre varias opciones que se diferencian con mayor facilidad por su título o una imagen.
- Respuestas de contenido multimedia: Las respuestas de contenido multimedia permiten que tus acciones reproduzcan contenido de audio más largo que SSML y proporcionen un componente visual con controles multimedia.
- Interactive Canvas: Interactive Canvas renderiza respuestas como vistas web en pantalla completa y funciona como una aplicación web interactiva que Asistente envía como respuesta al usuario en una conversación. Canvas usa un formato de mensaje ligeramente diferente para adaptarse a los estándares web, como HTML, CSS y JavaScript.
Cada uno de estos tipos de respuesta usa el mismo formato de mensaje base y tiene acceso a las mismas funciones generales que se describen a continuación.
Formato de un mensaje
En tu proyecto de acciones, define mensajes en formato YAML o JSON. Cada mensaje puede contener hasta dos respuestas simples y, opcionalmente, definir una respuesta enriquecida. Las respuestas se definen de las siguientes maneras:
first_simple
: Es la respuesta inicial de texto o voz (enviar) al usuario.content
: Contenido de respuesta enriquecida complementario para enviar después de respuestas simpleslast_simple
Es la respuesta final de texto o voz (simple) que se envía al usuario.canvas
: Hace referencia a una aplicación web que se integra con Interactive Canvas.
De forma predeterminada, los mensajes se adjuntan en el orden anterior en una cola de mensajes. Antes de que el usuario pueda responder, Asistente le presenta todos los mensajes de la cola.
Además, proporciona flexibilidad al mensaje mediante las siguientes funciones:
- Candidatos: Los candidatos te permiten definir respuestas según las capacidades del dispositivo de un usuario. Por ejemplo, puedes hacer que Asistente muestre respuestas enriquecidas solo cuando un usuario interactúe con tu acción en un dispositivo con pantalla habilitada.
- Variantes: Las variantes son variaciones alternativas de un solo mensaje. Por ejemplo, puedes hacer que Asistente elija entre cinco variantes de mensaje de bienvenida diferentes cada vez que un usuario invoque tu acción.
- Sugerencias: Las sugerencias proporcionan a los usuarios en dispositivos con funciones de pantalla chips de sugerencias cuando Asistente muestra el mensaje.
Un mensaje predeterminado usa un candidato, una variante y una respuesta first_simple
.
Candidatos
En un mensaje, el objeto candidates
te permite definir respuestas según las capacidades del dispositivo de un usuario. Por ejemplo, puedes hacer que Asistente muestre respuestas enriquecidas solo cuando un usuario interactúe con tu acción en un dispositivo con pantalla habilitada. Para definir los tipos de dispositivos en los que Asistente puede mostrar una variante, usa la propiedad selector
del objeto candidates
.
En el siguiente ejemplo, la propiedad selector
contiene la información de la capacidad del dispositivo. Los mensajes establecidos en el primer candidato se envían a los usuarios en un dispositivo que puede renderizar respuestas enriquecidas. La segunda sugerencia contiene mensajes para los usuarios que solo pueden recibir respuestas de texto y voz.
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." }] } }] }
Puedes proporcionar uno o más requisitos de capacidad para un candidato determinado. En la siguiente lista, se describe cada uno de los requisitos de capacidad disponibles:
SPEECH
: El dispositivo puede hablarle al usuario mediante la función de texto a voz o SSML.RICH_RESPONSE
: El dispositivo puede mostrar respuestas enriquecidas, como tarjetas, listas y tablas.LONG_FORM_AUDIO
: El dispositivo puede reproducir contenido de audio de formato largo, como música y podcasts.INTERACTIVE_CANVAS
: El dispositivo puede mostrar una respuesta de Interactive Canvas.WEB_LINK
: El dispositivo puede usar vínculos web en respuestas enriquecidas para abrir un navegador web.HOME_STORAGE
: El dispositivo puede almacenar datos y acceder a ellos desde el almacenamiento en el hogar.
Variantes
Las variantes proporcionan una forma de definir varias versiones de una respuesta. Cuando Asistente envía el mensaje a un usuario, se elige una de las variantes de forma aleatoria. Como práctica recomendada para el diseño de conversaciones, proporciona respuestas alternativas a los usuarios cuando conversan con tu acción.
Por ejemplo, proporciona diferentes variantes de mensajes de bienvenida para que los usuarios no escuchen la misma respuesta cada vez que invoquen tu acción:
YAML
candidates: - first_simple: variants: - speech: Hello. - speech: Hi there. - speech: Welcome.
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Hello." },{ "speech": "Hi there." },{ "speech": "Welcome." }] } }] }
Sugerencias

Las sugerencias proporcionan a los usuarios dispositivos con capacidades de visualización con chips de sugerencias cuando Asistente muestra la solicitud. Usa los chips de sugerencias para sugerir las respuestas de los usuarios a fin de continuar o reorientar la conversación. Cuando se presiona, un chip de sugerencias muestra el texto mostrado en la conversación tal como si el usuario lo hubiera escrito.
Puedes tener un máximo de 8 sugerencias en un solo mensaje, cada una con una longitud máxima de 25 caracteres de texto simple.
Para agregar una sugerencia, proporciona un objeto Suggestion
que contenga cada sugerencia en un campo title
independiente. Cada título debe ser único entre el conjunto de chips de sugerencias. En Actions Builder, se representa este objeto en YAML y JSON como suggestions
.
Por ejemplo, puedes proporcionar sugerencias de "Sí" y "No" junto a una pregunta:
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" }] }] }