Используйте TableStorage для BotFramework v4 - PullRequest
0 голосов
/ 15 марта 2019

В настоящее время я внедрил ботов с помощью Azure Cosmos DB.Я управляю данными состояния (пользовательское состояние, состояние разговора) с помощью средств доступа к состоянию.

Пример того, как я его использую:

// Use AutosaveStateMiddleware
adapter.use(new AutoSaveStateMiddleware(conversationState));
adapter.use(new AutoSaveStateMiddleware(userState));

// Read State from DB 
const conversationData = await this.conversationDataAccessor.get(turnContext, {});
const user = await this.userDataAccessor.get(turnContext, {});

// Manipulate state
conversationData.roundCounter = 1;
userData.name = "John Doe";

// Save to cache
await this.userDataAccessor.set(turnContext, user);
await this.conversationDataAccessor.set(turnContext, conversationData);

// Save changes to DB (persistent)
await this.conversationState.saveChanges(turnContext);
await this.userState.saveChanges(turnContext);

Я думаю о переходе на решение для хранения таблиц, поскольку оно намного дешевле, чем Cosmos DB.

К сожалению, я нашел только учебник для BotFramework v3.

Есть ли способ использовать хранилище таблиц подобным образом?Если да, то как?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 марта 2019

AFAIK для бот-фреймворка, мы можем использовать хранилище BLOB-объектов и базу данных Cosmos.В вашем случае вы можете использовать хранилище BLOB-объектов, поскольку это более дешевое решение.

Хранение BLOB-объектов Azure - это решение Microsoft для хранения объектов в облаке.Хранилище BLOB-объектов оптимизировано для хранения огромных объемов неструктурированных данных, таких как текстовые или двоичные данные.

const mystorage = new BlobStorage({
   <youy_containerName>,
   <your_storageAccountOrConnectionString>,
   <your_storageAccessKey>
})

Как только myStorage будет указывать на вашу учетную запись хранилища BLOB-объектов, ваш код бота теперь будет сохранять и извлекатьданные из хранилища BLOB-объектов.

Хранение стенограммы BLOB-объектов Azure предоставляет специальную опцию хранения, которая позволяет легко сохранять и извлекать разговоры пользователей в виде записанных стенограмм.Хранилище стенограмм BLOB-объектов Azure особенно полезно для автоматического ввода пользовательских данных для проверки при отладке производительности вашего бота.

Вот статья, в которой объясняется использование хранилища BLOB-объектов в среде ботов 4.

https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-v4-storage?view=azure-bot-service-4.0&tabs=javascript#using-blob-storage

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

1 голос
/ 15 марта 2019

Некоторые дополнительные советы по настройке БД:

Синтаксис из статьи не работает для меня. Я использовал это вместо:

const { BlobStorage } = require('botbuilder-azure');

// Add Blobstorage
const memoryStorage = new BlobStorage({
   containerName: 'CONTAINERNAME',
   storageAccountOrConnectionString: 'CONNECTIONSTRING',
})

Вы можете найти информацию в разделе "ключи" в своем ресурсе хранения в Azure.

...