Microsoft bot 框架中的ConversationState

问题描述 投票:0回答:1

我正在使用来自 BotBuilderSamples

的 Bot Framework 主动消息传递示例

对于主动消息传递,建议存储所有用户的 userID/conversationRef,然后通过通知控制器对其进行循环并发送主动消息

我已经设置了 cosmosdb 通过 ConversationState 对象存储对话 ID。

我的问题是,我可以使用相同的conversationState对象来存储所有用户的conversationReferences吗?或者我是否需要将对话引用数组存储在单独的分区中并手动加载。

我认为问题最终归结为……BotFramework 中的对话状态对象对所有用户来说是通用的,还是特定于每个用户的? 文档对此没有明确说明。

botframework azure-cosmosdb chatbot
1个回答
0
投票

我的问题是,我可以使用同一个对话状态对象来存储 我所有用户的对话参考?或者我需要存储这个 单独分区中的对话引用数组并加载它 手动。

每个对话的对话状态对象都是唯一的。所以,你不需要做任何特别的事情。对话当然可以有多个用户,所以;如果确实需要,您可以使用私人对话状态。

根据文档: “用于每个预定义存储桶的键特定于用户和对话,或两者。设置状态属性的值时,键是在内部为您定义的,其中包含轮次上下文中的信息,以确保每个用户或对话被放置在正确的存储桶和属性中。

更多信息: https://learn.microsoft.com/en-us/azure/bot-service/bot-builder-concept-state?view=azure-bot-service-4.0#state-management

© www.soinside.com 2019 - 2024. All rights reserved.