gpt4 book ai didi

node.js - 在 DialogFlow WebHook 中使用异步函数

转载 作者:搜寻专家 更新时间:2023-10-31 22:42:49 25 4
gpt4 key购买 nike

引用此处发布的解决方案(DialogFlow V2 Webhook - Expects Speech responses Immediately and not after async requests)
我想要实现的是网络 Hook 应该等到我从我的 api 调用中得到响应。P.S:API 正在运行,只是机器人不等待响应到来。任何帮助将不胜感激。谢谢

const rp = require('request-promise');

function convert(params){
return rp('https://data.fixer.io/api/convert?access_key=[my key]&from='+
params['currency-from']+'&to='+params['currency-to']+'&amount='+params.amount)
.then((data) => {
let responseData = JSON.parse(data);
let message = responseData.result;
console.log('Success');
return Promise.resolve(message);
}).catch((err)=> {
return Promise.reject(err);
});
}

function currencyConversion(agent) {
let params = request.body.result.parameters;
return convert(params)
.then((message)=> {
agent.add(`${params.amount} ${params['currency-from']} is ${message} ${params['currency-to']}`);
return Promise.resolve()
})
.catch((err) => {
console.log(err);
agent.add("Uh oh, something happened.");
return Promise.resolve();
})
}

let intentMap = new Map();
intentMap.set('Default Welcome Intent', welcome);
intentMap.set('Default Fallback Intent', fallback);
intentMap.set('currency.convert', currencyConversion);

最佳答案

你没有说明你在什么环境中运行,但鉴于你的代码,以及我上面概述的 agent.parameters 更改,我能够使用带有 Node 的 Firebase Cloud Functions 复制你的问题.js 6.14.

我能够通过使用 request-promise-native 包而不是 request-promise 来让它工作。顾名思义,它使用 native Promises 而不是 Bluebird Promise 包,但您进行的调用在其他方面是相同的。

关于node.js - 在 DialogFlow WebHook 中使用异步函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50422410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com