我创建了一个V2代理,该代理针对我的意图之一进行了 DialogFlow 网络挂接。我在服务器代码中收到了Webhook,但不确定如何响应。我找不到返回响应所需的URL,也找不到将响应与原始Webhook请求相关联的身份验证或其他信息。
我在自定义应用中使用Python进行响应。有人知道我在哪里可以找到此信息吗?
我已经阅读了以下文档以及更多内容:
答案 0 :(得分:4)
您不需要端点来响应Webhook请求。您只需要以正确的格式从webhook返回响应,这就是您的dialogflow代理期望的格式。 Dialogflow代理将能够根据与请求一起发送的responseId
将其映射到正确的请求。
假设您在python应用程序中收到一个Webhook请求:
req = {'responseId':'f8vaj49u-10i8-49c1-8491-8ac491e84918','queryResult': {'queryText':'你好吗','parameters':{}, 'allRequiredParamsPresent':True,'fulfillmentText':'很棒! 感谢您的询问。”,'fulfillmentMessages':[{'text':{'text': ['精彩!感谢您提出询问。']}}],'意图':{'名称': 'projects / agent_name / agent / intents / ########','displayName': 'smalltalk.greetings.how_are_you'},'intentDetectionConfidence':1.0, 'languageCode':'en'},'originalDetectIntentRequest':{'payload':{}}, 'session':'projects / agent_name-sit / agent / sessions / session-id'}
您想自己执行一些逻辑并构建响应,或者添加基于某些逻辑或其他任何内容的上下文。
response = json.dumps({
'fulfillmentText': 'response from webhook'
})
return response
您可以在诊断信息中检查履行请求和履行响应,当您从控制台发送测试请求时,可以从Dialogflow控制台的右下角访问该请求。