node.js - 在 Google Assistant 上捕获十万千万卢比的数字 - Dialogflow

标签 node.js dialogflow-es

我正在使用dialogflow和webhook(nodejs)构建一个聊天机器人。我想在 Google Assistant 上运行这个聊天机器人。我面临的问题是,如果一个人说“1.5 Lakhs”或“22 lacs”,Google Assistant不会将其分别转换为150 000或2 200 000。

我使用一些训练短语在对话流上创建了一个名为“get-customer-venue”的意图

Training Phrases

对话框流程自动获取参数 sys.number 和 denom

enter image description here

这是我创建的实体

enter image description here

然后我通过 webhook 将其路由以处理 denom 实体,如下所示

app.intent('get-customer-income',(conv,{number,denom}) =>{
  const income = number;
  console.log(number,denom);
  var actualincome,denomination;
  if(denom ==='lakhs'){
    actualincome = income * 100000;
  } else if(denom === 'crore'){
    actualincome = income * 10000000;
  } else {
    actualincome = income;
  }
    conv.ask(`Your ${actualincome}`);
});

当我测试时,它在右侧面板上的 Dialogflow 聊天机器人模拟器上运行良好

enter image description here

虽然我在 Google Assistant 模拟器上测试时它不起作用

enter image description here

最佳答案

找到解决方案了。 我没有在 app.intent 中获取参数,而是使用 conv.parameters['parameterName']

获取参数

以下是我的 webhook 现在的样子。

app.intent('get-customer-income',(conv) =>{
  const number = conv.parameters['number'];
  const denom = conv.parameters['denom'];
  const income = number;
  console.log(number,denom);
  var actualincome,denomination;
  if(denom ==='lakhs'){
    actualincome = income * 100000;
  } else if(denom === 'crore'){
    actualincome = income * 10000000;
  } else {
    actualincome = income;
  }
  conv.ask(`Your actual income is ${actualincome} ${denom}`);
});

我知道我在这个函数中使用了太多可以替换的常量。尽管这也很有魅力!

关于node.js - 在 Google Assistant 上捕获十万千万卢比的数字 - Dialogflow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56866607/

相关文章:

node.js - Nodemailer 仅适用于一个电子邮件地址

javascript - Node Express.js 从单独文件中声明的路由访问变量

security - actions-on-google 中用于 Dialogflow 身份验证的用户身份的可靠性

java - 无法使用来自用户和 DialogFlow(api.ai) 的对话填充我的 RecyclerView

actions-on-google - 如何在我的网站上部署 API.AI(对话流)机器人?

dialogflow-es - DialogFlow : simple ways of passing parameters between intents and from previous context to the current context?(不使用填充)

dialogflow-es - 通过 Dialogflow 从 Google 助手启动应用程序

mysql - 如何在nodejs中的sequelize模型mysql中列注释

node.js - 如何避免每次需要进行 React 更改时都重新启动服务器?

javascript - 如何优化代码?