是否有可能偏离对话流程,回到DF中的原始流程



我正在尝试在google对话流中开发一个聊天聊天,用户偏离了原始对话流(CF),但最终回到了在中间的原始位置。

机器人程序的响应为粗体例如:原CF:嗨->我能帮你什么忙吗->我想去旅行->好的,我建议去欧洲。你会感兴趣吗->是的->好的,这是的价格

偏离CF:嗨->我能帮你什么吗->我想去旅行->好的,我建议去欧洲。你会感兴趣吗->也许->欧洲有很多美丽的目的地你可以去。你感兴趣吗->是的->好吧,这是价格

我发现实现这一点的唯一方法是制定一个新的意图并制定后续行动,这使这变得非常多余。我不得不完全发展出两种不同的意图。有没有什么方法可以让我只为偏离的CF制定一个意图,并将其加入到最初的意图中?

一个简单的解决方案是制定许多后续意图,但这是一个永远不会结束的过程
这是我想建议的另一种方法:

  • 列出在发生以下情况时要处理的重要意图偏差
  • 当达到目的时,将其保存到某个数据库(或缓存)中,比如说unfinished_intent
  • 在每个请求或每2-3个请求中,检查unfinished_intent,如果它包含一些意向名称,则提示输入
  • 完成您的意图后,删除unfinished_intent

这只是一个想法,如何实现取决于您
我建议这样做是因为它是通用的,可以涵盖所有情况。

希望能有所帮助。

请记住,用户可以随时更改对话的方向。因此,使用一长串的后续意图是个坏主意。即使使用短链也是个坏主意。后续行动的意图应该局限于相当狭窄的情况,在大多数情况下,它们既不明智也不必要。

相反,要跟踪您所拥有的关于用户的信息,以及您仍然需要作为上下文一部分的信息。如果你正在进行旁敲侧击,或者提出了建议,也要跟踪,因为用户可能会对此提出问题。建立许多顶级意向,代表用户在说什么,而不是你在谈话中的位置或你计划如何回答。

另请参阅思考声音:设计对话,而不是基于StackOverflow上这个答案的代码。

相关内容

最新更新