在 Google Assistant 上捕获数以十万和千万计的数字 - Dialogflow

Posted

技术标签:

【中文标题】在 Google Assistant 上捕获数以十万和千万计的数字 - Dialogflow【英文标题】:Capturing numbers in Lakhs and Crores on Google Assistant - Dialogflow 【发布时间】:2019-11-13 22:28:24 【问题描述】:

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

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

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

这是我创建的实体

然后我通过 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 聊天机器人模拟器上进行测试时,它可以正常工作

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

【问题讨论】:

【参考方案1】:

找到解决方案。 我没有在 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`);
);

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

【讨论】:

【参考方案2】:

我的猜测是它匹配没有denom 参数的训练短语。

由于denom 参数是可选的,您可能根本不需要那个训练短语。尝试删除它,重新训练,看看它是如何匹配的。

【讨论】:

denom 是我为捕捉 Lakh 和 lac 等词而创建的实体。然后我检测并进行乘法以得出 lac 中的实际数字。如果我删除短语中的 denom 参数,它将不会检测到它,并且不会在 dialogflow 模拟器中工作。问题是代码在 dialogflow 模拟器中完美运行,但在 Google 模拟器上的 Actions 上不起作用

以上是关于在 Google Assistant 上捕获数以十万和千万计的数字 - Dialogflow的主要内容,如果未能解决你的问题,请参考以下文章

在 Google Assistant App 中拨打电话

让我的应用与 Google Home 中的 Google Assistant 对话

Google Assistant 与 IFTTT 的集成如何运作?

如何禁用 Google Assistant API(现在点击)

Google Assistant 操作:语音调用不起作用

启动 Google Assistant 语音交互