【问题标题】:Bot Framework - Conversation State memorystorage for prodBot Framework - prod 的对话状态内存存储
【发布时间】:2020-01-23 01:41:34
【问题描述】:

我正在使用 Bot Framework V4 Node.js 设置一个简单的机器人。根据文档,具有内存存储的 ConversationState 不适用于生产机器人。我只需要为每个对话存储一些临时变量(以跟踪计数器)。在这种情况下我可以使用 memoryStorage,因为我不想永久保存数据吗?如果有很多用户访问机器人,生产环境中是否会出现内存使用问题?

【问题讨论】:

  • 我无法具体回答您的问题,但我已经为我所做的大多数 PoC 使用了内存存储,其中一些基本上是生产级别的,并且没有任何问题。也就是说,您是否考虑过使用 Blob 存储来保存状态?我有一个机器人在使用它,并且没有产生任何费用。为了避免这里的问题,使用 Blob 应该是一种无成本或低成本的选择。

标签: azure botframework bots


【解决方案1】:

在生产机器人中使用内存存储的问题不仅仅是内存存储是临时的问题。一般来说,对话状态可以被认为是暂时的,因为对话可以被认为是暂时的。部署机器人时不应使用内存存储,因为已部署的机器人可以有多个实例同时跨多个服务器运行。每个实例都有自己的内存,每个会话中的每个用户都可能在不同的轮次向不同的实例发送消息。这就是为什么您应该始终为已部署的机器人使用外部存储服务。

您可以在 SDK 中看到 prompt.ts 中的计数器是如何处理的。当然,如果您不想在对话状态下跟踪计数器,那么您可以创建自己的属性访问器。

【讨论】:

  • 很好的解释!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-21
  • 2021-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多