Имитация набора текста - Компоновщик Bot Framework

Я пытаюсь добавить набор текста для своего бота с помощью Composer, но я не знаю, как получить доступ к операции набора текста.

[Activity
    type = Typing
]

Я также пробовал язык разметки chatdown, но, похоже, это тоже неправильно.

[Typing][Delay=3000]

Ни один из указанных выше форматов.lg не имитирует набор текста.

3 ответа

Фактически, набор текста работает в Bot Framework Composer, вы также можете увидеть его в действии здесь: https://youtu.be/wG8emu4v6hk?t=955 (краткий момент в 15:55). Источник образца можно найти здесь: https://github.com/vishwacsena/composer-build-2020/tree/master/Birthday-bot2

Действие отправляется точно так, как вы описали, но оно отображается только до тех пор, пока не будет отправлен следующий ответ. На приведенном в качестве примера снимке экрана задержка вызвана HTTP-запросом, и в это время отображается активность набора текста. Если ваши ответы следуют друг за другом быстро, вы можете вообще не увидеть индикатор набора текста, поскольку процесс идет слишком быстро.

[Activity
    type = Typing
]

Я также смог смоделировать описанное выше в моем собственном проекте Bot Framework Composer, где я использовал настраиваемое действие для имитации короткой задержки. Во время задержки отображается активность набора.

Typing indicator на компоновщике бота нужно реализовать следующим образом:

Чтобы он заработал, вам необходимо выполнить следующие шаги:

Включение ПО промежуточного слоя ввода в Bot Composer:

Важно то, что вы должны включить typing middleware к true нравится "showTyping": true,

Сделать можно так:

Step: 1

Step:2

       "features": {
      "removeRecipientMentions": false,
      "showTyping": true,
      "traceTranscript": false,
      "useInspection": false,
      "setSpeak": {
        "voiceFontName": "en-US-JennyNeural",
        "fallbackToTextForSpeechIfEmpty": true
      }
    }

Добавьте свою активность набора в SendResponse

      [Activity
    Type = Typing
]

Примечание. Вставьте код, щелкнув по отображаемому коду, как показано ниже:

Затем вставьте свой код активности ввода ниже:

Добавьте время задержки, чтобы можно было отобразить время:

      [Activity
    Value = ${3000}
    Type = ${"delay"}
]

Примечание. То же, что и выше. Сначала покажите код, затем вставьте действие задержки. Означает, что нажмите "Показать код" и вставьте delay activity там

Окончательный вывод:

окончательный результат должен быть таким, как показано ниже:

Примечание: для Bot Fremework SDK можно реализовать так:

       //take some delay and reply card
 await turnContext.SendActivitiesAsync(new Activity[] { new Activity { Type = ActivityTypes.Typing }, new Activity { Type = "delay", Value = 3000 } });

Надеюсь, что приведенные выше шаги будут реализованы typing indicator в разговоре с ботом и на SDK а также Composer

Друг, как вы решили проблему задержки с "Middleware"

"feature": {
    "UseShowTypingMiddleware": true,
    "UseInspectionMiddleware": false,
    "RemoveRecipientMention": false
  }

Я также хотел бы включить эту задержку в разговор моего чат-бота.

Другие вопросы по тегам