我有一个 QnA 机器人和一个 LUIS 机器人。当触发 QnA 的对话框以获得响应时,我想在我的 LUIS 对话框中发出发布请求。我只是用一个问题来测试它:嗨,它应该回答你好。
我不确定我的端口是否正确,因为我是从另一个类似的 stackoverflow 问题中得到的,所以这可能是我的错误所在。我也试过没有任何端口。
当我提出问题时,我得到了错误:Error: read ECONNRESET
我在 Azure Bot Service 上运行它,我怀疑这可能是这个特殊错误的原因。
这是我的代码:
var request = require('request');
var http = require('http');
var options = {
host:'westus.api.cognitive.microsoft.com',
path:'/qnamaker/v2.0/knowledgebases/<kb-key>/generateAnswer',
port:443,
method:'POST',
headers:{
'Ocp-Apim-Subscription-Key':<sub-key>,
'Content-Type':'application/json'
}
};
//http POST request
var reqPost = http.request(options,function(res){
res.setEncoding('utf-8');
var responseString = '';
res.on('data',function(chunk){
responseString += chunk;
});
res.on('end', function () {
session.send(responseString);
});
});
//LUIS dialog when question is asked.
bot.dialog('qnaReq', function (session, args) {
//call QnA Bot and ask that bot the question
reqPost.write({"question":"hi"}); //Just testing "hi" for now.
reqPost.end();
reqPost.on('error',function(e){
session.send('error: ' + e);
});
}).triggerAction({
matches: 'QnA'
});