Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redis 如何在聊天机器人中管理上下文/状态?_Redis_Bots_Botframework_Telegram Bot_Facebook Messenger Bot - Fatal编程技术网

Redis 如何在聊天机器人中管理上下文/状态?

Redis 如何在聊天机器人中管理上下文/状态?,redis,bots,botframework,telegram-bot,facebook-messenger-bot,Redis,Bots,Botframework,Telegram Bot,Facebook Messenger Bot,我正在使用Python、芹菜和MS bot框架开发聊天机器人。我想添加如下小对话框: 用户:你好 用户:给我点薯条 机器人:好的。地址 用户:xyz,州,82288 机器人:明白了。我给你点炸薯条 在这里,在用户给我地址后,我如何临时存储薯条以访问它? 此外,我认为如果用户在2-3分钟内没有响应,那么我的用例忘记订单是什么应该是可以接受的。因此,我还可以为存储的变量设置一个超时 我想用redis。我正在考虑在redis db中存储以下内容: { 'conversationId':['order

我正在使用Python、芹菜和MS bot框架开发聊天机器人。我想添加如下小对话框:

用户:你好

用户:给我点薯条

机器人:好的。地址

用户:xyz,州,82288

机器人:明白了。我给你点炸薯条

在这里,在用户给我地址后,我如何临时存储薯条以访问它?

此外,我认为如果用户在2-3分钟内没有响应,那么我的用例忘记订单是什么应该是可以接受的。因此,我还可以为存储的变量设置一个超时

我想用redis。我正在考虑在redis db中存储以下内容:

{
 'conversationId':['orderitem':'fries','address':'state, pincode']
}
基本上是一个key,value对,key=conversationId,value='order,address'


<强> >,这看起来是个不错的选择吗?< /强>

您应该考虑使用在BOT内管理状态。

bot可以管理3种状态数据,即用即用:

  • 特定通道上用户的状态数据(UserData)
  • 特定频道上对话的状态数据(ConversationData)
  • 特定会话上下文中用户的状态数据(PrivateConversationData)

  • 你应该考虑在BOT内使用管理状态。< /P> bot可以管理3种状态数据,即用即用:

  • 特定通道上用户的状态数据(UserData)
  • 特定频道上对话的状态数据(ConversationData)
  • 特定会话上下文中用户的状态数据(PrivateConversationData)

  • 我已经经历过了。第一段本身以以下注释结尾:重要:
    Bot State服务仅用于原型设计,而不是设计用于生产环境中的Bot。出于性能和安全考虑,您应该实现自己的机制来管理生产环境中的状态数据。
    这里您可以看到一些自定义实现:我已经介绍过了。第一段本身以以下注释结尾:重要:
    Bot State服务仅用于原型设计,而不是设计用于生产环境中的Bot。出于性能和安全原因,您应该实现自己的机制来管理生产环境中的状态数据。
    这里您可以看到一些自定义实现:使用redis是一个不错的选择,但为了更好地实践,请记住以下几点:1。使用json格式保存数据。2.您还应该为redis数据设置一个超时。因此,每当redis超时时,最好将用户数据保存在一个文件中。然后,您可以在用户再次返回时检索它们的状态。这样,你就不会失去用户的状态。使用redis是一个不错的选择,但是为了更好的实践,记住以下几点:1。使用json格式保存数据。2.您还应该为redis数据设置一个超时。因此,每当redis超时时,最好将用户数据保存在一个文件中。然后,您可以在用户再次返回时检索它们的状态。这样,您就永远不会失去用户的状态。