我对如何处理以下场景感到有点困惑:
FooBarIntent,它的实现需要第三方的链接帐户。signin helper。SignIn意图获取它并将它传递给我的实现服务。现在,我如何继续实现最初的FooBarIntent?我以为这会被无缝地处理,但是signin helpers的响应是一个全新的web钩子请求,没有原始请求的任何信息。我似乎可以将这些信息存储在上下文中,但这似乎相当笨拙。我是在这里遗漏了什么,还是真的要告诉用户“谢谢您登录,现在请再次问您原来的问题”?
发布于 2018-08-09 00:54:35
说“现在请再问你原来的问题”肯定是错误的方法--你的部分是正确的。
你也是正确的,没有自动重新触发原来的意图。虽然这看起来很奇怪,但这仅仅是因为意图代表了用户所说的内容,而不是您将要回复的内容。用户的初始声明和登录确认都是用户说过的不同的事情,您可能希望以不同的方式处理它们。
正如你所建议的,有一件事是有意义的,那就是在你从帮助者那里得到结果之前,对他们最初说的话做出回应。在这些情况下,当您请求助手时,在上下文中保存意图或操作名称和参数,可以让您在之后选择返回。(然而,还有其他可能的行为,这可能是有意义的。例如,考虑一下,如果您请求签入作为欢迎意图的一部分。因为用户从未通过这个第一步,所以您不需要跟踪状态。)
例如,当您绕道获得登录时保存状态的模式是多音库直接支持的模式。使用多音,您可以指定触发意图或操作处理程序之前所需的需求(例如要求对用户进行身份验证)。它负责满足这些要求,然后确保谈话继续在你停留的地方绕道。
https://stackoverflow.com/questions/51756969
复制相似问题