salute-issues icon indicating copy to clipboard operation
salute-issues copied to clipboard

[canvas] При command.type do_nothing с экрана исчезают suggestions

Open subnetsRU opened this issue 4 years ago • 18 comments

Где нашелся баг: в API Описание проблемы: При ответе от back c command.type = do_nothing с экрана исчезают саджесты Дополнительная информация: Искал способ обмена системными сообщениями между back и front в canvas app. Сообщениями, на которые не требуется ничего ни говорить ни отображать пользователю.

В "телеге" подсказали, что back может ответить вот так:

"items": [
  {
    "command": {
      "type": "do_nothing"
    }
  }
]

Но при таком ответе back (в нём нет suggestions) с экрана сразу исчезают suggestions, которые были выведены предыдущим ответом от back:

"payload":{"items":[{"command":{"type":"smart_app_data","smart_app_data":{"test":true}}}],"suggestions":{"buttons":[{"title":"test","action":{"type":"text","text":"Пауза"}}]

Вот suggest "test" тут же пропадает, если следом идёт do_nothing

subnetsRU avatar Jan 20 '21 09:01 subnetsRU

Привет! Боюсь, что это ожидаемое поведение. Разработчик должен самостоятельно поддерживать контекст саджестов сквозь команды. Каждая команда проходит несколько слоев из модулей, один из них Assistant SDK, где обрабатываются текущие саджесты на экране. Из твоего примера следует, что в прошлой команде был установлен саджест test, а в новой команде следует удалить все саджесты с экрана.

awinogradov avatar Jan 20 '21 13:01 awinogradov

Тикет был создан после общения с @christina_domanskaya в ТГ и её просьбе. Вы можете связаться с ней, чтобы она пояснила суть ?

Хорошо, раз это не баг, то можно ли создать фичареквест, чтобы при command.type = do_nothing саджесты игнорировались ?

subnetsRU avatar Jan 20 '21 13:01 subnetsRU

Фичреквест завести можно

awinogradov avatar Jan 20 '21 13:01 awinogradov

Спасибо Светлана. Теперь это фичареквест.

Тогда попрошу явным образом, чтобы игнорировались не только саджесты, а вообще всё (включая text и tts).

subnetsRU avatar Jan 20 '21 13:01 subnetsRU

Пожалуйста. Сроки уточняю.

Genenko-Svetlana avatar Jan 20 '21 13:01 Genenko-Svetlana

Вопрос будет вынесен на обсуждение на след.неделе. После этого будет понятен срок реализации.

Genenko-Svetlana avatar Jan 29 '21 08:01 Genenko-Svetlana

@subnetsRU обсудили. Срок реализации - до 30.06.21. Пока тикет закрываем и переносим в отложенные.

Genenko-Svetlana avatar Feb 08 '21 08:02 Genenko-Svetlana

Возвращаем в работу

Genenko-Svetlana avatar Apr 16 '21 05:04 Genenko-Svetlana

это похоже уже фиксанули

talagaev avatar Jun 22 '21 07:06 talagaev

@subnetsRU проверьте, пожалуйста

Genenko-Svetlana avatar Jun 22 '21 07:06 Genenko-Svetlana

@subnetsRU проверьте, пожалуйста

Genenko-Svetlana avatar Jul 04 '21 03:07 Genenko-Svetlana

Не работает.

Вот первое сообщение:

{
    "messageId": 1625475176637,
    "sessionId": "5a834da6-235c-3579-a790-f9baac9961b7",
    "messageName": "ANSWER_TO_USER",
    "uuid": {
        "userId": "60dd17dd-dad6-475a-b0a5-ba2ae3f39c97",
        "sub": "JLJyLRg+daL+YA6OybStCr9t+QTjEXSPdldhmMqgUkU2w220mQwceRQ9EWJ+c3mVeEYH7lj9oG\\/MMjK0TghszALsemlZqy59xu3aKsuxrWwFTkEE+Ap\\/yY06DYhNuXtIA\\/0EOJ+OrtWzoXOkZYOyDQ6Ej
PDCsv04ykAZw8cJkN4=",
        "userChannel": "COMPANION_B2C"
    },
    "payload": {
        "auto_listening": true,
        "device": {
            "platformType": "ANDROID",
            "platformVersion": "9",
            "surface": "COMPANION",
            "surfaceVersion": "21.6.2.6115",
            "features": {
                "appTypes": [
                    "DIALOG",
                    "WEB_APP",
                    "CHAT_APP"
                ]
            },
            "capabilities": {
                "screen": {
                    "available": true,
                    "height": 2280,
                    "scale_factor": 3,
                    "width": 1080
                }
            },
            "deviceId": "",
            "deviceManufacturer": "HUAWEI",
            "deviceModel": "ANE-LX1",
            "additionalInfo": {
                "host_app_id": "ru.sberbank.sdakit.companion.prod",
                "sdk_version": "21.6.2.6115"
            }
        },
        "suggestions": {
            "buttons": [
                {
                    "title": "Текст кнопки",
                    "action": {
                        "type": "text",
                        "text": "тут пейлоад"
                    }
                }
            ]
        },
        "items": [
            {
                "bubble": {
                    "text": "привет",
                    "expand_policy": "force_expand"
                }
            }
        ],
        "pronounceText": "<speak>это тест<\\/speak>",
        "pronounceTextType": "application\\/ssml"
    }
}

Результат на экране кнопка.

Вот второе сообщение:

{
    "messageId": 1625475176638,
    "sessionId": "5a834da6-235c-3579-a790-f9baac9961b7",
    "messageName": "ANSWER_TO_USER",
    "uuid": {
        "userId": "60dd17dd-dad6-475a-b0a5-ba2ae3f39c97",
        "sub": "JLJyLRg+daL+YA6OybStCr9t+QTjEXSPdldhmMqgUkU2w220mQwceRQ9EWJ+c3mVeEYH7lj9oG\\/MMjK0TghszALsemlZqy59xu3aKsuxrWwFTkEE+Ap\\/yY06DYhNuXtIA\\/0EOJ+OrtWzoXOkZYOyDQ6Ej
PDCsv04ykAZw8cJkN4=",
        "userChannel": "COMPANION_B2C"
    },
    "payload": {
        "auto_listening": true,
        "device": {
            "platformType": "ANDROID",
            "platformVersion": "9",
            "surface": "COMPANION",
            "surfaceVersion": "21.6.2.6115",
            "features": {
                "appTypes": [
                    "DIALOG",
                    "WEB_APP",
                    "CHAT_APP"
                ]
            },
            "capabilities": {
                "screen": {
                    "available": true,
                    "height": 2280,
                    "scale_factor": 3,
                    "width": 1080
                }
            },
            "deviceId": "",
            "deviceManufacturer": "HUAWEI",
            "deviceModel": "ANE-LX1",
            "additionalInfo": {
                "host_app_id": "ru.sberbank.sdakit.companion.prod",
                "sdk_version": "21.6.2.6115"
            }
        },
        "items": [
            {
                "command": {
                    "type": "do_nothing"
                }
            }
        ]
    }
}

Кнопка пропала...

https://user-images.githubusercontent.com/18159237/124446856-7b127f80-dd89-11eb-80a2-1f73003f9c85.mp4

subnetsRU avatar Jul 05 '21 09:07 subnetsRU

Поведение на основе документации https://developer.sberdevices.ru/docs/ru/developer_tools/amp/smartapp_api_commands

do_nothing — команда, которая используется если на запрос отвечать не надо.
При этом с экрана будут удалены все подсказки, добавленные в предыдущем ответе.

waxerdima avatar Jul 05 '21 09:07 waxerdima

Ну так это и хотелось бы изменить. В этом и есть суть данного тикета.

"do nothing" = "ничего не делай" != "удали все кнопки"

subnetsRU avatar Jul 05 '21 09:07 subnetsRU

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

talagaev avatar Jul 05 '21 10:07 talagaev

а) Не вижу в этом ничего странного когда backend ответил do_nothing (ничего не делай). б) Это был быстрый тест. Считайте, что вместо моего произнесённого "тест" идёт server_action с фронта. Так как поведение будет точно таким же - кнопка исчезнет с экрана.

Отправляем с фронта server_action:

{"messageId":1625484277311,"sessionId":"f98da40d-f1bd-36bb-a4a3-5185cc93417c","messageName":"SERVER_ACTION","payload":{"server_action":{"action_id":"canvas_ping"}... и так далее 

Отвечаем с бэка do_nothing:

{"messageId":1625484277311,"sessionId":"f98da40d-f1bd-36bb-a4a3-5185cc93417c","messageName":"ANSWER_TO_USER","payload":{"items":[{"command":{"type":"do_nothing"}}] ... ну и так далее

Всё, саджесты исчезли.

subnetsRU avatar Jul 05 '21 11:07 subnetsRU

  1. Запустить Моя фоторамка Отобразился ответ с саджестами
  2. сказать “статус” саджесты скрылись Отобразился запрос Статус В ответ приходит “payload”:{“items”:[{“command”:{“type”:“do_nothing”}}] в ответе нет ни текста ни саджестов Соответственно ничего и не отображается Это ожидаемое поведение

Саджесты после скрытия на шаге 2 пропадают

Genenko-Svetlana avatar Oct 15 '21 13:10 Genenko-Svetlana

Ну да, об этом то и речь в этом тикете ж...

  • либо поведение нужно менять. Ведь do_nothing переводится как "ничего не делай", а оно делает - убирает кнопки.
  • либо убирать упоминания про do_nothing, так как оно не соответствует действительности и просто сбивает с толку.
  • либо переименовывать do_nothing во что-то другое, чтобы не сбивало с толку. Ведь "убираю кнопки" является действием, которое явно не подпадает под "ничего не делай".

Ничего не делай как бы подразумевает, что то состояние, в котором находился смартап до отправки этой команды, не изменится. А оно меняется!

subnetsRU avatar Oct 15 '21 13:10 subnetsRU