我有一个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});
}
在上一个屏幕截图中,请忽略我正在尝试的“对话结束”复选框,以查看它在截图时如何改变了行为。
答案 0 :(得分:1)
关闭smalltalk可解决此问题,并从预建代理中导出所有Smalltalk意图,然后将其导入到我的Agent中即可。