Mensajes

Las instrucciones definen la manera en que tu Acción proporciona respuestas a los usuarios y cómo la Acción le solicita continuar. A medida que creas tu acción, puedes agregar instrucciones a y a varios lugares dentro de las escenas. Las instrucciones pueden ser tan simples como de texto o de voz, o pueden ser más complejas y tener contenido enriquecido, como tarjetas, imágenes y tablas.

Tipos de respuesta

Para cada instrucción, seleccionas entre una variedad de tipos de respuestas atractivas para Asistente para presentarles a los usuarios:

  • Respuestas simples: Las respuestas simples toman la forma de una burbuja de chat visualmente. y usar el lenguaje de marcado de síntesis de voz (SSML) y el sonido de la computadora. Las respuestas simples son las únicas admitidas en todos los tipos de dispositivos.
  • Respuestas enriquecidas: Las respuestas enriquecidas contienen elementos visuales o funcionales que para mejorar 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 sencilla para que los usuarios elijan entre las múltiples opciones diferenciada por su título o por una imagen.
  • Respuestas multimedia: Las respuestas multimedia permiten que tus acciones reproduzcan audio de forma más larga. que SSML y proporcionar un componente visual con controles multimedia.
  • Interactive Canvas: Interactive Canvas renderiza las respuestas en pantalla completa. web y funciones como una app web interactiva que el Asistente envía como un respuesta al usuario en la conversación. Canvas usa una instrucción un poco diferente para adaptarse a la flexibilidad adicional de estándares web como HTML, CSS y JavaScript:

Cada uno de estos tipos de respuesta usa el mismo formato de instrucción base y tiene acceso a con las mismas funciones generales que se describen a continuación.

Formato de una instrucción

En tu proyecto de Acciones, puedes definir instrucciones en formato YAML o JSON. Cada puede contener hasta dos respuestas simples y, opcionalmente, puedes definir respuesta. Las respuestas se definen de las siguientes maneras:

  • first_simple: Es la respuesta inicial de texto o voz (simple) para enviar al usuario.
  • content: Contenido complementario de respuesta enriquecida para enviar después de respuestas simples.
  • last_simple Es la respuesta final de texto o voz (simple) para enviar al usuario.
  • canvas: Hace referencia a una app web que se integra en Interactive Canvas.

De forma predeterminada, las instrucciones se adjuntan entre sí en el orden anterior en una instrucción. en la fila. Para que el usuario pueda responder, Asistente le presenta todas las instrucciones. en la cola de mensajes.

Además, puedes proporcionar flexibilidad a las instrucciones con las siguientes funciones:

  • Candidatos: Los candidatos te permiten definir las respuestas en función de una las capacidades del dispositivo del usuario. Por ejemplo, puedes hacer que Asistente muestre contenido enriquecido respuestas solo cuando un usuario interactúe con tu Acción en una pantalla dispositivo.
  • Variantes: Las variantes son variaciones alternativas de un solo mensaje. Por ejemplo, puedes hacer que Asistente elija entre cinco opciones variantes del mensaje cada vez que un usuario invoca tu acción.
  • Sugerencias: Estas sugerencias brindan usuarios con capacidad de visualización. dispositivos con chips de sugerencias cuando Asistente muestra el mensaje.

Una instrucción predeterminada usa un candidato, una variante y una respuesta first_simple.

Candidatos

En una instrucción, el objeto candidates te permite definir respuestas basadas en una las capacidades del dispositivo del usuario. Por ejemplo, puedes hacer que Asistente muestre contenido enriquecido respuestas solo cuando un usuario interactúe con tu Acción en una pantalla dispositivo. Para definir los tipos de dispositivos en los que el Asistente puede devolver un candidato, usa la propiedad selector del objeto candidates.

En el siguiente ejemplo, la propiedad selector contiene la capacidad del dispositivo. información. Las instrucciones establecidas en la primera opción se envían a los usuarios en un dispositivo. que puede renderizar respuestas enriquecidas. El segundo candidato contiene instrucciones para 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. El La siguiente lista describe cada uno de los requisitos de capacidad disponibles:

  • SPEECH: El dispositivo puede hablarle al usuario a través de texto a voz o SSML.
  • RICH_RESPONSE: El dispositivo puede mostrar respuestas enriquecidas, como tarjetas, listas y en diferentes tipos de tablas particionadas.
  • LONG_FORM_AUDIO: El dispositivo puede reproducir contenido multimedia 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 de la casa.

Variantes

Las variantes proporcionan una manera de definir varias versiones de una respuesta. Cuando Asistente envía la instrucción a un usuario, se elige una de las variantes al azar. Como mejor en el diseño de conversaciones, ofrece a los usuarios respuestas alternativas cuando conversan con tu Acción.

Por ejemplo, proporciona diferentes variantes del mensaje de bienvenida para que los usuarios no escuchen el misma respuesta cada vez que invocan la 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

Ejemplo de chips de sugerencias en una pantalla inteligente

Las sugerencias proporcionan chips de sugerencias a los usuarios que tienen dispositivos con capacidad de visualización. Asistente mostrará el mensaje. Usa chips de sugerencias para dar pistas sobre las respuestas de los usuarios continuar o reorientar la conversación. Cuando se presiona, un chip de sugerencias muestra el muestra el texto a la conversación textualmente, como si el usuario lo hubiera escrito.

Puedes tener un máximo de 8 sugerencias en una sola instrucción, cada una con un máximo con 25 caracteres de texto simple.

Para agregar una sugerencia, proporciona un objeto Suggestion que contenga cada en un campo title separado. Cada título debe ser único entre el conjunto de chips de sugerencias. En Actions Builder, este objeto se representa en YAML y JSON como suggestions.

Por ejemplo, puedes indicar "Sí". y "No" sugerencias 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"
    }]
  }]
}