将请求移交给其他意图

时间:2018-11-27 19:48:55

标签: dialogflow actions-on-google

我有一个3种意图的dialogflow代理:

  • 默认欢迎意向
  • 默认后备意图
  • 我的意图

我的意图有一个实现目标的Firebase Web挂钩。当我与聊天机器人进行对话时,我得到Default Welcome Intent。但是,一旦我问一个由My Intent处理的问题,即使之后我说诸如My Intent之类的话,我似乎也陷在hello中。如何退出工作状态并清除状态,以便默认后备和默认欢迎再次开始工作?我见过很多实现示例,它们处理自定义实现中的其他目的,当您已经配置了这些默认值时,这似乎是错误的。另一个示例是,我启用了SmallTalk,并问了一个由My Intent填补的问题后,我问“你几岁了”,这个意图是针对My Intent触发agent.smalltalk.age真的没有道理。

实现代码:

var https = require ('https');
const functions = require('firebase-functions');
const DialogFlowApp = require('actions-on-google').DialogFlowApp;
const WELCOME_INTENT= 'Default Welcome Intent';
const FALLBACK_INTENT = 'Default Fallback Intent';

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {

  let action = request.body.queryResult.action;
  response.setHeader('Content-Type','applicaiton/json');
  const parameters = request.body.queryResult.parameters;

  console.log("action: " + action)
  if (action === 'input.wifi'){
    getClientCount(parameters['geo-city'], response);
  }
});

function getClientCount(location, CloudFnResponse) {
          var chat = "sample text";
          CloudFnResponse.send(buildChatResponse(chat));
          return;
        });
});

}

function buildChatResponse(chat) {
    return JSON.stringify({"fulfillmentText": chat});
}

默认后备意图: enter image description here

默认欢迎意图: enter image description here

我的意图: enter image description here

在上一个屏幕截图中,请忽略我正在尝试的“对话结束”复选框,以查看它在截图时如何改变了行为。

1 个答案:

答案 0 :(得分:1)

关闭smalltalk可解决此问题,并从预建代理中导出所有Smalltalk意图,然后将其导入到我的Agent中即可。