gpt4 book ai didi

node.js - 提示选择机器人框架

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

我有两个问题。

  1. 我的 retryPrompt 无法正常工作。用户的输入与 LUIS 的意图相匹配,而不是重新提示问题。

    愿望:当用户输入“5”时,会重新提示问题。

    实际:当用户输入“5”时,它将与 LUIS 意图匹配。

  2. 在决定重新提示问题或启动另一个对话框之前是否可以验证用户的输入?

    欲望:如果用户输入“胡萝卜”,它将发送一条消息“胡萝卜在蔬菜下”,然后重新提示相同的问题。但是,如果用户输入“5”,则会重新提示用户相同的问题。

请参阅下面的我的代码。

var luisAppId = process.env.LuisAppId;
var luisAPIKey = process.env.LuisAPIKey;
var luisAPIHostName = process.env.LuisAPIHostName || 'southeastasia.api.cognitive.microsoft.com';

const LuisModelUrl = 'https://' + luisAPIHostName + '/luis/v2.0/apps/' +
luisAppId + '?subscription-key=' + luisAPIKey;

// Create a recognizer that gets intents from LUIS, and add it to the bot
var recognizer = new builder.LuisRecognizer(LuisModelUrl);
bot.recognizer(recognizer);

bot.dialog('pets', [
function (session, args, next) {
builder.Prompts.choice(session, 'which pet do you prefer?\n1. rabbit?\n2. dog?\n3. cat?\n', ['1', '2', '3'], {
retryPrompt: "sorry please pick.\n1. rabbit?\n2. dog?\n3. cat?",
maxRetries: 1
});
},
function (session, args, next) {
if (args.response) {
var choice = args.response.entity;
switch (choice) {
case '1':
session.replaceDialog('rabbit');
break;
case '2':
session.replaceDialog('dog');
break;
case '3':
session.replaceDialog('cat');
break;
default:
session.send('sorry!!');
break;
}
}
else {
session.send("Invalid");
}
}
]);

最佳答案

识别器的 .onEnabled 方法可用于禁用 LUIS 识别器:

var recognizer = new builder.LuisRecognizer(LuisModelUrl)
.onEnabled(function (context, callback) {
var enabled = context.dialogStack().length === 0;
callback(null, enabled);
});

您还可以检查dialogData的选项选项以确定当前文本是否是当前对话框的有效选项:

var recognizer = new builder.LuisRecognizer(LuisModel)
.onEnabled(function (context, callback) {
var enabled = context.dialogStack().length === 0;
if(context.dialogData && context.dialogData.options && context.dialogData.options.choices){
if(!context.dialogData.options.choices.includes(context.message.text)){
//text is not in current dialog options
}
}

callback(null, enabled);
});

关于node.js - 提示选择机器人框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52757437/

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