我正在使用Dialogflow中的聊天机器人,希望验证年龄。简要介绍一下:我正在创建一个聊天机器人,以识别诸如住宅或痴呆症护理之类的护理需求。在最初的查询中,我希望能够通过在Dialogflow的实现代码中执行快速的IF语句来确保用户年龄在65岁以上!
这是我目前的意图: Current Intents
这是getUserInfo的意图: getUserInfo intent
这是实现代码:
setTestVariable(value)
这对我来说是新的。
答案 0 :(得分:2)
意图处理程序的回调的第二个参数是一个对象,其中包含Dialogflow的所有参数(实体)。
在当前代码中,您正在使用年龄参数(即:{age}
)来解构此对象。
我注意到您有两个不同的参数,age和给定名称。
您可以通过以下操作获得这些值:
'use strict';
// Import the Dialogflow module from the Actions on Google client library.
const {dialogflow} = require('actions-on-google');
// Import the firebase-functions package for deployment.
const functions = require('firebase-functions');
// Instantiate the Dialogflow client.
const app = dialogflow({debug: true});
app.intent('careEqnuiry - yourself - getUserInfo', (conv, params) => {
const name = params['given-name'];
const age = params['age'];
if (age.amount < 65) {
conv.ask("You're not old enough to receive care!");
}
});
// Set the DialogflowApp object to handle the HTTPS POST request.
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);
此外,从对话返回响应的正确方法是在对话对象上使用ask()
或close()
方法。 ask()
发送响应,同时允许对话继续进行,而close
发送响应并结束对话。