在 Google Assistant - Dialogflow 上捕获以万亿为单位的数字
Capturing numbers in Lakhs and Crores on Google Assistant - Dialogflow
我正在使用 dialogflow 和 webhook (nodejs) 构建一个聊天机器人。我想在 Google 智能助理上 运行 这个聊天机器人。我面临的问题是,如果一个人说“1.5 Lakhs”或“22 lacs”,google 助手不会将其分别转换为 150 000 或 2 200 000。
我用一些训练短语在 dialogflow 上创建了一个名为 "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 助手模拟器上测试时它不起作用
我的猜测是它匹配没有 denom
参数的训练短语。
由于 denom
参数是可选的,您可能根本不需要该训练短语。尝试删除它,重新训练,看看它匹配得如何。
得到解决方案。
我没有在 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}`);
});
我知道我在这个函数中使用了太多可以替换的常量。虽然这也很有魅力!
我正在使用 dialogflow 和 webhook (nodejs) 构建一个聊天机器人。我想在 Google 智能助理上 运行 这个聊天机器人。我面临的问题是,如果一个人说“1.5 Lakhs”或“22 lacs”,google 助手不会将其分别转换为 150 000 或 2 200 000。
我用一些训练短语在 dialogflow 上创建了一个名为 "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 助手模拟器上测试时它不起作用
我的猜测是它匹配没有 denom
参数的训练短语。
由于 denom
参数是可选的,您可能根本不需要该训练短语。尝试删除它,重新训练,看看它匹配得如何。
得到解决方案。 我没有在 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}`);
});
我知道我在这个函数中使用了太多可以替换的常量。虽然这也很有魅力!