Вы можете создать сценарий с учетом голоса ассистента, которого выбрал пользователь. Например, для обращения к пользователю на «ты» или «вы» в зависимости от голоса.
- Graph
- Code
- Canvas App
Для персонализации сценария с учетом голоса:
- Добавьте на экран сценария блок Условия.
- Выберите из списка тип условия Персонаж Салют.
- Соедините условия с соответствующими ветками сценария.
- Соберите сценарий и протестируйте смартап в приложении или на устройстве. Используйте для авторизации Сбер ID, на который зарегистрирован аккаунт разработчика в Studio.
В тестовом виджете блок Условия всегда будет определять голос как Сбер.
Для определения голоса в Code используйте системную переменную $rawRequest
.
Переменная содержит запрос пользователя в формате SmartApp API.
Для доступа к полю с именем голоса используйте следующую запись:
$request.rawRequest.payload.character.name
Таким образом с помощью переменной можно получить информацию о голосе ассистента, которого выбрал пользователь: Сбер, Афина или Джой.
script:
if: $request.rawRequest.payload.character.name === "Джой"
if: $request.rawRequest.payload.character.name === "Cбер"
if: $request.rawRequest.payload.character.name === "Афина"
Дополнительно можно использовать {{$request.rawRequest.payload.character.appeal}}
для определения ассистента, который говорит на "вы" или "ты".
script:
if: $request.rawRequest.payload.character.appeal === "official" //Cбер и Афина
if: $request.rawRequest.payload.character.appeal === "no_official" //Джой
При запуске смартапов с $rawRequest
в тестовом виджете будет возникать ошибка, так как смартап не может получить данные ассистента.
Чтобы узнать, какой голос выбран у пользователя в Canvas App, подпишитесь на событие data от @salutejs/client
:
assistantClient.on('data', (command) => {
if (command.type === 'character')
{ // 'sber' | 'eva' | 'joy'; setCharacter([command.character.id|http://command.character.id/]); }
});