Как и в веб-приложениях, бот по своей сути не имеет состояния;другой экземпляр вашего бота может обработать любой данный ход разговора.Для некоторых ботов эта простота предпочтительна - бот может работать без дополнительной информации, или требуемая информация гарантированно находится во входящем сообщении.Для других, состояние (например, где в разговоре мы или ранее полученные данные о пользователе) необходимо для бота, чтобы иметь полезный разговор.
Зачем мне нужно состояние?
Поддержание состояния позволяет вашему боту вести более содержательные беседы, запоминая определенные вещи о пользователе или разговоре.Например, если вы ранее общались с пользователем, вы можете сохранить предыдущую информацию о нем, чтобы вам не приходилось запрашивать ее снова.State также хранит данные дольше, чем текущий ход, так что ваш бот хранит информацию в течение многооборотного разговора.
Что касается ботов, есть несколько уровней для использования состояния, которое мыЗдесь я расскажу: уровень хранения, управление состоянием (содержится в состоянии бота на диаграмме ниже) и средства доступа к свойствам состояния.Эта диаграмма иллюстрирует части последовательности взаимодействия между этими слоями, причем сплошные стрелки представляют вызов метода, а пунктирные стрелки представляют ответ (с возвращаемым значением или без него).
Начиная с бэкэнда, где фактически хранится информация о состоянии, находится наш уровень хранения.Это можно рассматривать как наше физическое хранилище, такое как оперативная память, Azure или сторонний сервер.
В Bot Framework SDK есть несколько реализаций для уровня хранения:
• Памятьхранение реализует хранение в памяти для целей тестирования.Хранение данных в памяти предназначено только для локального тестирования, поскольку оно является временным и временным.Данные очищаются при каждом перезапуске бота.
• Хранилище BLOB-объектов Azure подключается к базе данных объектов хранилища BLOB-объектов Azure.
• Хранилище Azure Cosmos DB подключается к базе данных Nomos БД Cosmos.
Инструкции по подключению к другим параметрам хранилища см. В запись непосредственно в хранилище .
Для получения дополнительной информации см. Статьи ниже.
https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-concept-state?view=azure-bot-service-4.0 https://docs.microsoft.com/en-us/azure/bot-service/javascript/bot-builder-javascript-quickstart?view=azure-bot-service-4.0