通过启用Beta功能和API,可以从外部api调用Google Dialogflow webhook吗?

问题描述

我一直在研究POC,并且能够从外部API调用Dialogflow实现Webhook并获取响应,但是在禁用Beta功能选项时无法获取知识库响应。启用Beta功能后,我得到的是知识库响应,但没有得到Webhook响应。无法使KNowledgebase和webhook与beta功能选项一起使用。

Dialogflow CX是否可能? 知识有效,但Webhook不能满足以下要求:

const knflow = require('@google-cloud/dialogflow').v2beta1;
      const ksclient = new knflow.SessionsClient({
        keyFilename: "C:/Temp/XXXXXX.json"
      });
 const sessionPath = ksclient.projectAgentSessionPath(
        projectId,sessionId
      );
var responses = await ksclient.detectIntent(request);

Webhook works but not kNowledgebase with the following:
const sessionPath = sessionClient.sessionPath(projectid,sessionid);

        var chatMessage = chatRequest.messageDetails.message;
var responses = await sessionClient.detectIntent(request);

解决方法

在Dialogflow ES中,Knowledge Connector是Beta版。如果您在代理设置中启用了“测试版功能和API”选项,则只能在代理上使用知识连接器。

如果您使用nodeJS客户端库,请考虑检查DetectIntent Response,可以在 queryResult下的 fulfillmentText fulfillmentMessages 字段上找到Webhook的响应。虽然可以在 alternativeQueryResults 下找到知识连接器的响应。

您还可以考虑将package.json中的“ @ google-cloud / dialogflow”库版本升级为“ ^ 3.3.0”。

对于人类移交的代理,您可以查看以下示例github实现:https://github.com/dialogflow/agent-human-handoff-nodejs

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...