我正在使用 Python、celery 和 MS 机器人框架开发聊天机器人。我想添加如下小对话框:
User: Hi
User: Order me fries.
Bot: ok. address?
User: xyz, state, 82288
Bot: Got it. I will order fries for you.
这里,如何在用户给我地址后临时存储fries来访问它?
此外,我认为如果用户在 2-3 分钟内没有响应,我的用例应该可以忘记订单是什么。所以,我也可以为存储的变量设置超时。
我想到了用redis。我正在考虑在 redis 数据库中存储如下内容:
{
'conversationId':['orderitem':'fries','address':'state, pincode']
}
基本上是键值对,key=conversationId 和 value='order,address'。
那么,这看起来是个不错的选择吗?
最佳答案
您应该考虑使用 Bot State REST API管理机器人中的状态。
机器人可以管理 3 种类型的状态数据,开箱即用:
- 特定 channel 上用户的状态数据 (UserData)
- 声明特定 channel 上对话的数据 (ConversationData)
- 在特定对话的上下文中为用户声明数据 (PrivateConversationData)
关于redis - 如何在聊天机器人中管理上下文/状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45222073/