Тег a:
a: — (answer) передает текст ответа, который отобразится на экране и который произнесет голосовой ассистент.
Тип значения
- multiline string
Параметры
auto_listening(boolean) — указывает будет ли смартап слушать ответ пользователя после ответа ассистента.markdown(string) — текст ответа ассистента, отформатированный с помощью Markdown-разметки.
Доступны следующие элементы форматирования:
| Форматирование | Пример кода |
|---|---|
| Жирный шрифт |
|
| Курсив |
или
|
| Зачеркнутый шрифт |
|
| Ссылка | |
| Маркированный список |
или
|
Вложенные данные
- multiline string
Синтаксис
В тексте ответа можно использовать подстановки и функции. Внутри скобок {{ }} может находиться любое валидное выражение на JavaScript, можно использовать те же переменные и функции, что и в скриптах, кроме собственных функций из подключенных библиотек.
a: Здравствуй {{capitalize($client.name)}}, как поживаешь? Посмотри что я нашел. || auto_listening = false, markdown = "**Здравствуй** {{capitalize($client.name}}, как *поживаешь*? Посмотри что я [нашел](https://example.com/)."
Примеры значений
a: Привет!
a: Ответ1
a: Длинный ответ на несколько строчек
Убедитесь, что в тексте нет символов, предназначенных для визуального оформления, которые могут помешать корректному синтезу текста. Подробнее о проектировании сценария смартапа читайте в разделе Проектирование интерфейса.
Тег audio:
audio: — тег позволяет использовать аудиозаписи в ответах ассистента.
Кроме собственных звуков, загруженных с компьютера, вы можете использовать звуки из библиотеки.
Тег нельзя использовать в проектах SaluteBot.
Требования к файлу
- формат wav;
- 1 канал (моно);
- кодирование 16-bit (PCM) LE signed, с заголовком;
- частота дискретизации 24 кГц;
- размер файла не более 10 Мб.
Параметры
-
name(string) — имя аудиофайла, необязательный параметр. -
source(string) — обязательный параметр, который указывает на источник звука. Возможные значения:user— звук загружен с компьютера;library— звук из библиотеки.
Синтаксис
Синтаксис тега зависит от того, какие звуки вы используете: загруженные или из библиотеки.
При загрузке звуков нужно указать веб-адрес файла из раздела Контент:
audio: https://sberdevices2.s3pd01.sbercloud.ru/preprod-botadmin/263/264/audio/ovDnhCDSVZmHeWrw.wav || name = "sample.wav", source = "user"
При использовании звуков из библиотеки нужно указать название звука:
audio: sm-sounds-human-cheer-1 || name = "Аплодисменты", source = "library"
В обоих случаях параметры name и source нужно указывать после разделителя ||."
Примеры значений
Использование звука из библиотеки:
state: Hello
q!: hi
a: hi
audio: sm-sounds-human-cheer-1 || name = "Аплодисменты", source = "library"
Использование собственного звука:
state: Hello
q!: hi
a: hi
audio: https://sberdevices2.s3pd01.sbercloud.ru/preprod-botadmin/263/264/audio/ovDnhCDSVZmHeWrw.wav || name = "sample.wav", source = "user"
Случайное воспроизведение звуков с помощью тега random:
state: Hello
q!: hi
random:
audio: sm-sounds-human-cheer-1 || name = "Аплодисменты", source = "library"
audio: https://sberdevices2.s3pd01.sbercloud.ru/preprod-botadmin/263/264/audio/ovDnhCDSVZmHeWrw.wav || name = "002_Бумажная версия книги — копия.wav", source = "user"
Тег buttons:
buttons: — кнопки, осуществляют переходы между стейтами сценария.
Тип значения
- none
Параметры
- none
Вложенные данные
- buttons
Синтаксис
- Название кнопки добавляется в кавычках после тегов.
state: NormalButtons
q!: * start
a: Кнопки могут быть заданы текстом:
buttons:
"Это кнопка"
-
При добавлении нескольких кнопок вы можете:
-
определять каждую кнопку в отдельном теге buttons:
state: NormalButtons
q!: * start
a: Несколько кнопок:
buttons:
"Это кнопка"
buttons:
"Это вторая кнопка"
buttons:
"Это третья кнопка"
"Это четвертая кнопка"
"Это пятая кнопка" -
указывать все кнопки в одном теге;
-
-
Вложенные данные тега
buttons:должны соответствовать шаблону:<json-node> -> <string>. В левой части валидный JsonNode — строка или объект, определяющие текст или тело кнопки. В правой части — опционально строка, определяющая путь перехода при нажатии кнопки.
state: NormalButtons
q!: * start
a: Кнопка с маппингом:
buttons:
"могут содержать маппинг" -> /NormalButtons/2