我正面临一个问题,即即使在为特定意图请求启用会话结束后,输出响应也会在循环中重复出现。当用户请求特定请求时,会出现此情况,输出响应将发送回用户,即会话结束。但是如果用户不会要求麦克风打开任何其他请求,然后先前的输出响应开始重复。为什么会出现这种情况?
问题是您在Dialogflow配置中为Intent设置了“会话结束”开关,但您也在使用履行。在这些情况下,您的webhook代码会覆盖“会话结束”的设置。
您可以使用webhook设置会话结束。如果您使用的是动作在谷歌库,那么您可以使用conv.close()
而不是conv.ask()
来表明这一点。
虽然这不是一个问题,但当您关闭对话时,设置输出上下文也没有意义。输出上下文将被忽略。 (如果从webhook设置上下文,也不会设置输出上下文。)