目前我使用Azure Cosmos DB实现了Bots。我使用状态访问器管理状态数据(userstate,conversationstate)。
我如何使用它的示例:
// 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找到了tutorial。
有没有办法以类似的方式使用表存储?如果是这样,怎么样?
谢谢!
AFAIK for botframework我们可以使用Blob存储和cosmos DB。在您的情况下,您可以使用blob存储,因为它是相当便宜的解决方案。
Azure Blob存储是Microsoft针对云的对象存储解决方案。 Blob存储优化用于存储大量非结构化数据,例如文本或二进制数据。
const mystorage = new BlobStorage({
<youy_containerName>,
<your_storageAccountOrConnectionString>,
<your_storageAccessKey>
})
一旦“myStorage”设置为指向您的Blob存储帐户,您的机器人代码现在将存储和检索Blob存储中的数据。
Azure blob transcript存储提供了一个专门的存储选项,允许您以录制的记录的形式轻松保存和检索用户对话。 Azure blob脚本存储对于自动捕获用户输入以在调试机器人性能时进行检查特别有用。
这篇文章解释了bot框架4中blob存储的用法。
希望能帮助到你。
设置数据库的其他一些提示:
文章的语法对我不起作用。我改用了这个:
const { BlobStorage } = require('botbuilder-azure');
// Add Blobstorage
const memoryStorage = new BlobStorage({
containerName: 'CONTAINERNAME',
storageAccountOrConnectionString: 'CONNECTIONSTRING',
})
您可以在Azure上的存储资源中的“密钥”下找到信息。