0

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

Dialogflow CX 可以吗?Knowledge 有效,但 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);
4

1 回答 1

0

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

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

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

对于代理到人工的切换,您可以查看此示例 github 实现:https ://github.com/dialogflow/agent-human-handoff-nodejs 。

于 2020-11-10T03:13:56.153 回答