问题描述
我一直在研究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。