Концепция разговоров в командах развития ботов - PullRequest
1 голос
/ 26 февраля 2020

Я занимаюсь разработкой бота Microsoft Teams с использованием NodeJS v4 Bot Framework. Это первый раз, когда я пошел и разработал бота, и мне кажется, что в нем отсутствует основная концепция, разговоры / предыдущий контекст сообщения. Когда бот спрашивает меня, как я иду, и я отвечаю «хорошо» в следующем сообщении и следующих сообщениях, он, кажется, не сохраняет в объекте, как я иду.

У меня есть обходной путь для этого запихивая ответы в массив, но кажется странным, что предыдущий контекст сообщения не был реализован ... Я что-то упустил?

1 Ответ

4 голосов
/ 26 февраля 2020

Я думаю, что вам может не хватать понимания Управление состоянием бота . Эта ссылка дает обзор типов состояния (пользователь против разговора), а также мест, в которых вы можете хранить состояние (например, память, Azure хранилище BLOB-объектов и т. Д. c). ). Имейте в виду, что предложенная в статье Cosmos DB может оказаться дорогостоящим вариантом из-за высокого состояния чтения ботов (каждый ход приводит к чтению, которое является частью того, на чем основана цена Cosmos), поэтому, например, MongoDB может быть другой возможный вариант.

Еще один подход к «состоянию» - это концепция «диалогов», где существует определенный «управляемый диалог», через который может проходить пользователь. Например, в сценарии бронирования рейса вам понадобится место отправления, пункт назначения, дата, время и т. Д. c., Так что это многооборотный «мини-разговор», и диалоговые окна выполняют свое собственное управление состоянием в этом контексте. См. « Диалоги в Bot Framework ».

Кроме того, подход «массива», который вы используете, похож на опцию состояния в памяти, но требует от вас чтобы управлять вещами на 100%, его нелегко масштабировать (со встроенным состоянием состояний легко переключать память на другую опцию), и он может быть не многопользовательским (в зависимости от того, как вы работаете с массив, если вы сохраняете по одному на пользователя или около того).

Надеюсь, это поможет

...