gpt4 book ai didi

javascript - 根据首选语言使用 Bing Translate API 进行 Bot Framework Node.js 翻译

转载 作者:行者123 更新时间:2023-11-29 21:05:13 24 4
gpt4 key购买 nike

我正在尝试在使用 Node.js Bot Builder SDK 开发的机器人中实现翻译功能。我找到了 sample翻译是这样完成的:

bot.use({
receive: function (event, next) {
var token = tokenHandler.token();
if (token && token !== ""){ //not null or empty string
var urlencodedtext = urlencode(event.text); // convert foreign characters to utf8
var options = {
method: 'GET',
url: 'http://api.microsofttranslator.com/v2/Http.svc/Translate'+'?text=' + urlencodedtext + '&from=' + FROMLOCALE +'&to=' + TOLOCALE,
headers: {
'Authorization': 'Bearer ' + token
}
};
request(options, function (error, response, body){
//Check for error
if(error){
return console.log('Error:', error);
} else if(response.statusCode !== 200){
return console.log('Invalid Status Code Returned:', response.statusCode);
} else {
// Returns in xml format, no json option :(
parseString(body, function (err, result) {
console.log(result.string._);
event.text = result.string._;
next();
});

}
});
} else {
console.log("No token");
next();
}

});

我需要这样做,因为我需要使用 LUIS,它不支持我的用户可以用来与机器人交流的语言(斯洛伐克语)。但是,机器人是多语言的,这意味着我也支持英语。如果我的用户使用英语(他或她设置它并且此首选项存储在 session.preferredLocale 中)我正在做不需要的翻译。

如何在接收中间件中访问 session ,以便检查是否需要进行翻译?而且,我怎样才能在进行翻译之前发送打字?它有时可能需要更长的时间,因此机器人变得没有响应。

请注意,我不能使用 event.textLocale,因为我计划将机器人发布到 Messenger,它不会发布此信息。我也不想将 Locale recognizer API 用作另一种认知服务。

谢谢!

最佳答案

您是否尝试过使用 UniversalBot.loadSession()

语法应该是这样的:

bot.use({
recognize: function(event, next) {
bot.loadSession(event.address, function (err, session) {
// Do stuff, e.g API calls, session.sendTyping();
var locale = resultOfApiCall.locale; // Or something else
session.preferredLocale(locale).save().sendTyping();

switch (locale) {
case 'en-US':
// More stuff, keep LuisRecognizer enabled
break;
}
next();
});
}
});

关于javascript - 根据首选语言使用 Bing Translate API 进行 Bot Framework Node.js 翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44442297/

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