Подсказки определяют, как ваше действие отображает ответы пользователей и как ваше действие предлагает им продолжить. Создавая свое действие, вы можете добавлять подсказки к его вызовам и в различные места внутри сцены. Подсказки могут быть простыми, например текстовый или речевой ответ, или более сложными и содержать разнообразное содержимое, такое как карточки, изображения и таблицы.
Типы ответов
Для каждого запроса вы выбираете один из множества интересных типов ответов, которые Ассистент будет показывать пользователям:
- Простые ответы . Простые ответы визуально принимают форму чат-пузыря и используют преобразование текста в речь (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
содержит информацию о возможностях устройства. Подсказки, заданные в первом кандидате, отправляются пользователям на устройство, которое может отображать развернутые ответы. Второй кандидат содержит подсказки для пользователей, которые могут получать только текстовые и речевые ответы.
ЯМЛ
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
: устройство может отображать ответ интерактивного холста. -
WEB_LINK
: устройство может использовать веб-ссылки в расширенных ответах для открытия веб-браузера. -
HOME_STORAGE
: Устройство может хранить и получать доступ к данным из домашнего хранилища .
Варианты
Варианты позволяют определить несколько версий ответа. Когда Ассистент отправляет пользователю подсказку, один из вариантов выбирается случайным образом. Рекомендуется предоставлять пользователям альтернативные ответы, когда они взаимодействуют с вашим действием.
Например, предоставьте разные варианты приветственного сообщения, чтобы пользователи не слышали один и тот же ответ каждый раз, когда вызывают ваше действие:
ЯМЛ
candidates: - first_simple: variants: - speech: Hello. - speech: Hi there. - speech: Welcome.
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Hello." },{ "speech": "Hi there." },{ "speech": "Welcome." }] } }] }
Предложения
![Пример чипов подсказок на умном дисплее](https://developers-dot-devsite-v2-prod.appspot.com/static/assistant/conversational/images/smart-display/chips.png?authuser=7&hl=ru)
Предложения предоставляют пользователям устройств с дисплеем чипы предложений, когда Ассистент отображает подсказку. Используйте чипы предложений, чтобы подсказать ответы пользователей, чтобы продолжить или развернуть разговор. При нажатии чип подсказки возвращает отображаемый текст в разговор дословно, как если бы пользователь его напечатал.
В одном приглашении может быть максимум 8 предложений, максимальная длина каждого из которых составляет 25 символов открытого текста.
Чтобы добавить предложение, предоставьте объект Suggestion
, который содержит каждое предложение в отдельном поле title
. Каждое название должно быть уникальным среди набора фишек предложений. В Actions Builder этот объект представлен в форматах YAML и JSON в виде suggestions
.
Например, вы можете предложить варианты «Да» и «Нет» рядом с вопросом:
ЯМЛ
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" }] }] }