Поддержка диалоговых действий будет прекращена 13 июня 2023 г. Дополнительные сведения см. в разделе Закрытие диалоговых действий .

Подсказки

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Подсказки определяют, как ваше действие отображает ответы пользователям и как ваше действие предлагает им продолжить. По мере создания действия вы можете добавлять подсказки к вызовам и к различным местам в сценах. Подсказки могут быть такими же простыми, как текст или речевой ответ, или могут быть более сложными и содержать разнообразное содержимое, такое как карточки, изображения и таблицы.

Типы ответов

Для каждого приглашения вы выбираете один из множества привлекательных типов ответов, которые Ассистент представляет пользователям:

  • Простые ответы . Простые ответы визуально выглядят как облачко чата, а для звука используется преобразование текста в речь (TTS) или язык разметки синтеза речи (SSML). Простые ответы — это единственные ответы, поддерживаемые на всех типах устройств.
  • Расширенные ответы . Расширенные ответы содержат визуальные или функциональные элементы, улучшающие взаимодействие пользователей с вашими действиями. С расширенными ответами вы также можете отображать табличные данные или воспроизводить более длинный аудиоконтент.
  • Ответы визуального выбора . Ответы визуального выбора предоставляют пользователям визуальный интерфейс для выбора между несколькими вариантами, которые легче всего отличить по названию или изображению.
  • Медиа-ответы : Медиа-ответы позволяют вашим действиям воспроизводить более длинный аудиоконтент, чем SSML , и предоставляют визуальный компонент с элементами управления мультимедиа.
  • Интерактивный холст : Интерактивный холст отображает ответы в виде полноэкранных веб-представлений и функционирует как интерактивное веб-приложение, которое Ассистент отправляет в качестве ответа пользователю в разговоре. Canvas использует немного другой формат подсказок, чтобы обеспечить дополнительную гибкость веб-стандартов, таких как HTML, CSS и JavaScript.

Каждый из этих типов ответов использует один и тот же базовый формат приглашения и имеет доступ к одним и тем же общим функциям, описанным ниже.

Формат подсказки

В проекте Actions вы определяете подсказки в формате YAML или JSON. Каждое приглашение может содержать до двух простых ответов и дополнительно определять расширенный ответ. Ответы определяются следующими способами:

  • first_simple : начальный текстовый или речевой (простой) ответ для отправки пользователю.
  • content : Дополнительный расширенный контент ответа для отправки после простых ответов.
  • last_simple Окончательный текстовый или речевой (простой) ответ для отправки пользователю.
  • canvas : ссылается на веб-приложение, которое интегрируется с Interactive Canvas.

По умолчанию подсказки добавляются друг к другу в указанном выше порядке в очереди подсказок. Прежде чем пользователь сможет ответить, Ассистент представляет пользователю все подсказки в очереди подсказок.

Вы дополнительно обеспечиваете гибкость подсказки, используя следующие функции:

  • Кандидаты . Кандидаты позволяют определять ответы на основе возможностей устройства пользователя. Например, вы можете сделать так, чтобы Ассистент отображал расширенные ответы только тогда, когда пользователь взаимодействует с вашим действием на устройстве с поддержкой дисплея.
  • Варианты : Варианты — это альтернативные варианты одного сообщения. Например, вы можете попросить помощника выбирать между пятью различными вариантами приветственного сообщения каждый раз, когда пользователь вызывает ваше действие.
  • Предложения . Предложения предоставляют пользователям устройств с дисплеем чипы предложений, когда Ассистент отображает подсказку.

Приглашение по умолчанию использует одного кандидата, один вариант и ответ first_simple .

Кандидаты

В подсказке объект candidates позволяет вам определять ответы на основе возможностей устройства пользователя. Например, вы можете сделать так, чтобы Ассистент отображал расширенные ответы только тогда, когда пользователь взаимодействует с вашим действием на устройстве с поддержкой дисплея. Чтобы определить типы устройств, для которых Assistant может вернуть кандидата, используйте свойство selector объекта candidates .

В приведенном ниже примере свойство selector содержит информацию о возможностях устройства. Подсказки, заданные в первом кандидате, отправляются пользователям на устройство, которое может отображать расширенные ответы. Второй кандидат содержит подсказки для пользователей, которые могут получать только текстовые и речевые ответы.

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."
      }]
    }
  }]
}
    

Вы можете указать одно или несколько требований к возможностям для данного кандидата. В следующем списке описаны все доступные требования к возможностям:

  • SPEECH : Устройство может разговаривать с пользователем посредством преобразования текста в речь или SSML.
  • RICH_RESPONSE : Устройство может отображать расширенные ответы, такие как карточки, списки и таблицы.
  • LONG_FORM_AUDIO : устройство может воспроизводить длинные аудиофайлы, такие как музыка и подкасты.
  • INTERACTIVE_CANVAS : Устройство может отображать ответ Interactive Canvas.
  • WEB_LINK : Устройство может использовать веб-ссылки в расширенных ответах, чтобы открыть веб-браузер.
  • HOME_STORAGE : Устройство может сохранять данные и получать к ним доступ из домашнего хранилища .

Варианты

Варианты позволяют определить несколько версий ответа. Когда Ассистент отправляет подсказку пользователю, случайным образом выбирается один из вариантов. В качестве наилучшей практики в дизайне разговора предоставьте пользователям альтернативные ответы, когда они разговаривают с вашим действием.

Например, предоставьте разные варианты приветственного сообщения, чтобы пользователи не слышали один и тот же ответ каждый раз, когда вызывают ваше действие:

YAML

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

JSON

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

Предложения

Пример фишек предложений на смарт-дисплее

Предложения предоставляют пользователям устройств с дисплеем чипы предложений, когда Ассистент отображает подсказку. Используйте подсказки, чтобы намекнуть на реакцию пользователя, чтобы продолжить или повернуть разговор. При нажатии чип предложения возвращает отображаемый текст в разговор дословно, как если бы пользователь набрал его.

У вас может быть максимум 8 предложений в одном приглашении, каждое из которых имеет максимальную длину 25 символов открытого текста.

Чтобы добавить предложение, предоставьте объект Suggestion , содержащий каждое предложение в отдельном поле title . Каждое название должно быть уникальным среди набора фишек предложений. В Actions Builder этот объект представлен в YAML и JSON как suggestions .

Например, рядом с вопросом можно указать предложения «Да» и «Нет»:

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"
    }]
  }]
}