我们有一个使用 MS bot 框架的 bot 本地(不是 azure)部署。目前该服务在三台机器上运行,都服务于单个 api 端点。当我们只在一台机器上运行服务时,一切正常。但是,如果我们在所有三个上运行它,对话上下文可能会丢失。例如,这是我们的流程:
用户说他们想做 x
机器人与正确的 LUIS 意图匹配,并要求提供更多信息
用户提供必要的信息(IP 地址)
Bot 运行一种方法来查找他们想要的信息并将其返回给他们。我们通过 context.Wait() 来做到这一点。
如果我们让服务在多台机器上运行,有时会发生这种情况:
机器 A 处理步骤 1 和 2
机器 B 上的控制器获得用户在步骤 3 中提供的答案,并且我假设因为它没有机器 A 所拥有的对话上下文,它会将文本发送到 LUIS,而不是调用应该调用的方法。LUIS 没有与 IP 匹配的意图,因此发生错误。
当服务在多台机器上运行时,处理维护对话上下文的最佳方法是什么?上下文。前进?和/或其他想法?
谢谢!
慕田峪4524236
潇湘沐
相关分类