【发布时间】:2020-06-11 16:32:57
【问题描述】:
我正在尝试在 DialogFlow 中创建一个聊天机器人来检查您的保险索赔状态。
我已经设置了对外部 API(模拟)的调用,并且我使用了一个 Promise 来等待响应然后返回它。但是,尽管从模拟 API 获得了正确的数据,但我始终从 DF 获得[empty response]。只是时间太长了吗?
下面是相关代码:
var callClaimsApi = new Promise((resolve, reject)=>{
try{
https.get('https://MOCKAPIURL.COM', (res) => {
res.setEncoding('utf8');
let rawData = '';
res.on('data', (chunk) => { rawData += chunk; });
res.on('end', () => {
resolve(JSON.parse(rawData));
});
});} catch(e){reject(e.message);}
});
function checkClaims(agent){
callClaimsApi
.then(function(fulfillment){
console.log("fulfillment name: " + fulfillment.name);
agent.add("It looks like you want to find a claim for " + fulfillment.name);
})
.catch(function(error){console.log(error);});
}
intentMap.set('checkClaims', checkClaims);
这是日志的输出:
【问题讨论】:
-
我认为问题在于 API 调用花费的时间太长,而 DialogFlow 想要回答而不是等待。所以,我想我要么需要加快我的通话速度,要么找到一种方法让 DialogFlow 等待,无论是在代码中还是在设置中,如果可能的话......
标签: javascript node.js promise dialogflow-es dialogflow-es-fulfillment