我正在使用NodeJS v4 Bot框架开发一个Microsoft。这是我第一次开发一个机器人,在我看来,它缺少一个核心概念,对话/先前的消息上下文。当机器人问我怎么做的时候,我在下一条消息中回答“很好”,下面的消息似乎没有存储在一个对象中,我将如何去做。
我为此做了一个工作,把答案推入数组,但奇怪的是,以前的消息上下文还没有实现.我是不是遗漏了什么?
发布于 2020-02-25 22:26:24
我认为您可能缺少的是对Bot状态管理的理解。此链接概述了状态的类型(用户与会话)以及可以存储状态的位置(例如内存、Azure blob存储等)。请注意,本文中提出的Cosmos DB可能是一个昂贵的选项,因为bots的读取状态很高(每一回合都会导致读取,这是Cosmos定价的一部分),因此MongoDB可能是另一种可能的选择。
另一种“状态”的方法是“对话框”的概念,用户可能正在经历一个特定的“引导会话”。例如,在航班预订场景中,您需要出发地点、目的地、日期、时间等,因此这是一次多转的“迷你对话”,对话框在这种情况下进行自己的状态管理。见"Bot框架中的对话框“。
顺便说一句,您所采用的“数组”方法有点类似于内存状态选项,但它要求您100%地管理事物,它很难被缩放(内置状态的东西,很容易将内存切换到另一个选项),而且它可能并不是多用户安全的(如果您是在每个用户中保存一个)。
希望这有帮助
https://stackoverflow.com/questions/60404615
复制