对话流实现访问代码中的实体

时间:2018-09-07 14:57:53

标签: javascript dialogflow actions-on-google

我正在使用Dialogflow中的聊天机器人,希望验证年龄。简要介绍一下:我正在创建一个聊天机器人,以识别诸如住宅或痴呆症护理之类的护理需求。在最初的查询中,我希望能够通过在Dialogflow的实现代码中执行快速的IF语句来确保用户年龄在65岁以上!

这是我目前的意图: Current Intents

这是getUserInfo的意图: getUserInfo intent

这是实现代码:

setTestVariable(value)

这对我来说是新的。

1 个答案:

答案 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发送响应并结束对话。