修改
对不起大家,这只是因为意图名称后面缺少逗号。我很抱歉x:
我最近使用Microsoft Bot Framework(botbuilder v3.14.0
),Node.js(v8.9.4
)和LUIS创建了一个聊天机器人。
我能够成功识别'机器人中的一些意图,并返回所需的结果,但对于某些意图,机器人似乎无法接受意图,即使LUIS的结果指向正确的结果。
我尝试使用LUIS测试刀片进行测试,并在chrome中的端点URL之后直接输入查询。这两种方法都会给我相同和正确的意图。端点URL方法的示例结果如下:
{
"query": "why do you exist",
"topScoringIntent": {
"intent": "bot-existence",
"score": 0.597947
},
"intents": [
{
"intent": "bot-existence",
"score": 0.597947
},
{
"intent": "bot-joke",
"score": 0.04189388
},
{
"intent": "Exit",
"score": 0.0182088781
},
{
"intent": "None",
"score": 0.0164906159
},
{
"intent": "Cancel",
"score": 0.009767669
},
{
"intent": "Stop",
"score": 0.009608646
},
{
"intent": "bot-age",
"score": 0.009238302
},
{
"intent": "Greeting",
"score": 0.008374314
},
{
"intent": "bot-name",
"score": 0.00683666952
},
{
"intent": "Help",
"score": 0.00357789616
},
{
"intent": "StartOver",
"score": 0.00262053218
},
{
"intent": "checkDBStatus",
"score": 0.002412489
},
{
"intent": "refreshSchema",
"score": 1.35339326E-06
},
{
"intent": "checkDutyPerson",
"score": 5.41015623E-08
}
],
"entities": []
}
在这种情况下,机器人应该能够选择bot-existence
意图并执行此代码:
intents.matches('bot-existence' [
function (session) {
console.log('bot-existence Intent');
session.beginDialog('bot-existDialog');
}
]);
但它没有。它适用于其他意图,例如bot-age
,bot-joke
和checkDBStatus
。这些意图的代码与bot-existence
的上述代码相同,只是编辑以适当地适应意图。我也多次发布了LUIS应用程序,以防万一,但无济于事。
知道为什么吗?
答案 0 :(得分:1)
很抱歉,我失踪的是代码中的逗号,旁边是意图名称('bot-existence')。编辑的代码段如下!
intents.matches('bot-existence', [
function (session) {
console.log('bot-existence Intent');
session.beginDialog('bot-existDialog');
}
]);
答案 1 :(得分:0)
尝试这种方式,使用triggerAction:
var recognizer = new builder.LuisRecognizer(LuisModelUrl);
// Add the recognizer to the bot
bot.recognizer(recognizer);
bot.dialog('bot-existence', [
function (session, args) {
console.log('bot-existence Intent');
session.beginDialog('bot-existDialog');
}
]).triggerAction({matches:'bot-existence'});