gpt4 book ai didi

node.js - 如何在 Azure Bot 服务上同时使用英语和法语 QnaMaker?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:25 24 4
gpt4 key购买 nike

我们有一个聊天机器人和它旁边的一个按钮,可以在英语和法语之间更改机器人的语言。我还有一个包含英语和法语问题的 QnAmaker。有没有办法让我们在机器人处于英语模式时只处理英语问题?法语也是如此。

Note: my bot react like this:
user: what is teww?
Do you mean this, select one of question below: BOT
1. French question
2. English question
3 French question

我想防止这种情况发生,我正在考虑创建两个 qnamaker,一个用于法语,一个用于英语。但是我不知道如何处理 azure bot 服务中的 qna 更改?有办法解决吗?

平台:Azure 机器人服务 Node.JS 微软 QnA Maker

最佳答案

是的,您可以针对英语和法语问题分别创建 2 个 QnAMaker 知识库。您可以利用 Text Analytics API检测机器人的 recevie 中间件中的用户输入语言,该中间件显示在 Determine the locale by using analytics .

请引用以下代码片段:

var recognizer1 = new cognitiveservices.QnAMakerRecognizer({
knowledgeBaseId: <knowledgeBaseId_1>,
subscriptionKey: <subscriptionKey_1>,
top: 4
});

var basicQnAMakerDialog = new cognitiveservices.QnAMakerDialog({
recognizers: [recognizer1],
qnaThreshold: 0.3,
});
var recognizer2 = new cognitiveservices.QnAMakerRecognizer({
knowledgeBaseId: <knowledgeBaseId_2>,
subscriptionKey: <subscriptionKey_2>,
top: 4
});

var basicQnAMakerDialog2 = new cognitiveservices.QnAMakerDialog({
recognizers: [recognizer2],
qnaThreshold: 0.3,
});

bot.dialog('en', basicQnAMakerDialog);
bot.dialog('zh', basicQnAMakerDialog2);

bot.dialog('/', [(session, args) => {
switch (session.preferredLocale()) {
case 'zh':
session.replaceDialog('zh', args)
break;
case 'en-US':
default:
session.replaceDialog('en', args)
break;
}
}])

bot.use({
receive: function (event, next) {
if (event.text) {
var options = {
method: 'POST',
url: 'https://westus2.api.cognitive.microsoft.com/text/analytics/v2.0/languages?numberOfLanguagesToDetect=1',
body: {
documents: [{
id: 'message',
text: event.text
}]
},
json: true,
headers: {
'Ocp-Apim-Subscription-Key': '230f82f08c014accbd067ddc2c0ea98f'
}
};
request(options, function (error, response, body) {
if (!error && body) {
if (body.documents && body.documents.length > 0) {
var languages = body.documents[0].detectedLanguages;
if (languages && languages.length > 0) {
event.textLocale = languages[0].iso6391Name;
}
}
}
next();
});
} else {
next();
}
}
});

关于node.js - 如何在 Azure Bot 服务上同时使用英语和法语 QnaMaker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49700383/

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