Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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
Python 无法让bot使用'在对话中的特定点启动与用户的对话;事件';或';后续事件';。什么';解决办法是什么?_Python_Webhooks_Chatbot_Dialogflow Es - Fatal编程技术网

Python 无法让bot使用'在对话中的特定点启动与用户的对话;事件';或';后续事件';。什么';解决办法是什么?

Python 无法让bot使用'在对话中的特定点启动与用户的对话;事件';或';后续事件';。什么';解决办法是什么?,python,webhooks,chatbot,dialogflow-es,Python,Webhooks,Chatbot,Dialogflow Es,我的代理有一个已定义的对话流。使用一些度量,在会话流中的某个点,代理应该向用户提示一些东西,用户没有说任何东西,机器人没有反应,它正在开始让用户在这个点上知道一些东西 因此,从我的网络搜索和之前的dialogflow论坛讨论来看,“事件”似乎是能够做到这一点的工具。因此,我有一个基于PythonDjango的web服务器,它从我的Dialogflow代理接收并响应Webhook。我的聊天机器人界面是基于Dialogflow的github帐户()中的“Dialogflow Android clie

我的代理有一个已定义的对话流。使用一些度量,在会话流中的某个点,代理应该向用户提示一些东西,用户没有说任何东西,机器人没有反应,它正在开始让用户在这个点上知道一些东西

因此,从我的网络搜索和之前的dialogflow论坛讨论来看,“事件”似乎是能够做到这一点的工具。因此,我有一个基于PythonDjango的web服务器,它从我的Dialogflow代理接收并响应Webhook。我的聊天机器人界面是基于Dialogflow的github帐户()中的“Dialogflow Android client”示例应用程序制作的Android应用程序。通过此设置,基本对话聊天机器人运行良好。现在,我正在尝试实现上面段落中描述的场景

现在,为了做到这一点,我实现了向Dialogflow代理发送POST/查询请求以调用事件(如Dialogflow文档中所示:)。它正在成功地调用具有与之关联的特定事件的意图。在使用EVENT webhook调用该意图时,我将以文档中描述的格式从代理返回一个json响应到我的服务器。但是客户端(无论是Android应用程序还是Dialogflow developer对话框检查控制台)都没有显示事件触发意图的文本或输出文本。我只在服务器上获取所有JSON信息,客户端应用程序没有任何内容。为什么会这样?在之前的Dialogflow论坛讨论中,一位经验丰富的人士说,通过webhook触发事件,您只能从哪里获得触发信息,而不是从其他地方。这是真的吗?在同一个地方,据说在客户端应用程序上获取事件触发器响应的最佳方法是使用FollowupEvent工具

这就是我所做的,在我的服务器对用户所说的激活的1意图的webhook响应中,我在响应JSON中包含FollowupEvent信息。但客户端应用程序仍然没有收到事件触发意图的响应。我认为在这种情况下,被触发的意图并不仅仅是被触发的,因为如果它被触发,一个针对该意图的后webhook请求就会到达服务器,而它没有。为什么它不起作用?决议是什么

以下是从我的服务器发送到Dialogflow代理的JSON(使用FollowupEvent):

在我的Dialogflow代理中,我创建了一个没有任何用户的意图

例如,其中有一个名为“testr”的事件,有一个答案文本和“webhook”

选项签入履行

最后,有没有更好的方法来实现我想要实现的东西

{
    "contextOut": [],
    "speech": " ",
    "displayText": " ",
    "source": "PSVA-server",
    "followupEvent": {
        "event": {
            "name": "testr",
            "data": {}
        }
    }
}