тайм-аут Botbuilder для виртуального помощника Typescript - PullRequest
0 голосов
/ 16 января 2020

У нас есть Microsoft Virtual Assistant , встроенный в Typescript, и мы планируем добавить возможность Timeout. Это означает, что VA должен завершить разговор своим умением, если пользователь не занят в течение определенного времени.

Для этого в V3 SDK есть модуль botbuilder-timeout , который говорит:

"Модуль для Microsoft Bot Framework, позволяющий вашему боту запрашивать у пользователя, если бот обнаруживает бездействие и, в конечном итоге, завершает разговор, если по истечении определенного промежутка времени пользователь не предпринимает никаких действий. "

Есть ли что-то в V4 или Virtual Assistant, которое предлагает аналогичные возможности? Если да, то любые идеи / указатели на документ приветствуются.

1 Ответ

1 голос
/ 17 января 2020

Для ботов V4 нет ничего официального. Я также не думаю, что видел что-то неофициальное.

При этом, как правило, мы рекомендуем что-то вроде:

  1. В каждом сообщении запускайте синхронный таймер. Вы можете сделать это в боте, но было бы лучше сделать это вне бота, как с Azure функциями или чем-то еще. В остальной части этого ответа предполагается, что таймер находится за пределами бота. Убедитесь, что таймер также отслеживает dialogReference , связанный с таймером.
  2. Перезапускайте таймер каждый раз, когда пользователь, соответствующий этому conversationReference, отправляет сообщение
  3. после таймера истекает, отправьте событие боту с информацией о пользователе и разговоре (возможно, через ChannelData), сообщив боту, что таймер истек. Вы также можете создать отдельную конечную точку и наблюдать там, чтобы вам не нужна схема действий; вместо /api/messages вы можете использовать что-то вроде /api/expiredTimers.
  4. Как только получено событие таймера с истекшим сроком действия, отправит упреждающее сообщение пользователю либо на 1), посмотрите, нет ли у них ' Вы все еще там, или 2) закончите разговор.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...