【问题标题】:bot framework use luis - how to send a single request to luisbot 框架使用 luis - 如何向 luis 发送单个请求
【发布时间】:2023-04-07 02:35:01
【问题描述】:

我是 luis 和 bot 框架的新手。到目前为止,我学到的是如何通过 luis 识别的意图触发对话。但我不知道如何在对话框中向 luis 发送消息。我想使用“builder.EntityRecognizer.findEntity”方法。我很确定我的 builder.prompts.text 结果只是给了我纯文本,而不是 LUIS 识别的文本的意图和实体。但我找不到解决方案如何向 luis 发送单个请求,以取回我认为“findEntity”方法所需的 luis-json 对象。

bot.dialog('reklamation',[
function(session){
    session.send('Gerne kümmere ich mich um Ihre Reklamation.');
    builder.Prompts.text(session, 'Bitte nennen Sie mir Ihr Anliegen.');
},
function(session, results){
    session.dialogData.reklamation = results.response;
    session.send('Ich habe Ihre Mitteilung aufgenommen.');
    builder.Prompts.text(session, 'Bitte geben Sie mir eine E-Mail-Adresse, unter der wir Ihnen den aktuellen Stand Ihrer Reklamation mitteilen können.');
},
function(session, results){
    var email = builder.EntityRecognizer.findEntity(results.entities, 'email');
    session.dialogData.email = email;
    session.send('Ok! Ich habe folgende Informationen gespeichert:');
    session.send('Reklamationsgrund: ' + session.dialogData.reklamation);
    session.send('E-Mail: ' + session.dialogData.email);
    session.endDialog('Wir werden uns schnellstmöglich mit Ihnen in Verbindung setzen. Vielen Dank für Ihre Anfrage!');
}]).triggerAction({
matches: 'reklamation'});

感谢任何建议。

【问题讨论】:

    标签: botframework azure-language-understanding


    【解决方案1】:

    在瀑布的第一步中检索实体。意图基本上是在比赛中定义的。因此,如果您的 LUIS 应用具有“reklamation”意图,您的代码将被触发

    那么你需要将第一个函数的签名更新为:

    bot.dialog('reklamation', [
        function (session, args, next) {
    

    那么你可以使用:

    builder.EntityRecognizer.findEntity(args.intent.entities, 'email');
    

    如果您正在寻找的是在瀑布的第一步之后手动调用 LUIS,您可以尝试:

    builder.LuisRecognizer.recognize("your input", modelUrl, (err, intents, entities) { ... }
    

    查看LUIS Node.js sample 了解更多信息。

    【讨论】:

    • 这意味着我不能使用 luis 来识别对话框中的新消息?我的计划如下(聊天机器人内的短文本示例): 我:我有问题! bot(luis 检测到问题并启动问题对话框):请告诉我您的电子邮件地址。我:我的电子邮件地址是 abc@gmail.com 机器人(应该将 abc@gmail.com 识别为一个实体):好的!我已经识别出以下邮件地址:'abc@gmail.com'。请描述你的问题............但最后一点我需要一个路易斯认可。
    • 完全没有,我可能误解了你的问题。有2个选项:1)手动调用luis 2)尝试以下builder.LuisRecognizer.recognize(actionModel.userInput, modelUrl, (err, intents, entities) {
    • 没问题。我写英语就像我写德语一样。也许我只是写得不够清楚。但这正是我想知道的。我如何手动呼叫 luis?你帮了我很多,直到这里。如果你能向我解释这一点,你将成为我一直以来的英雄……至少两周。 :)
    • 你试过我在上一条评论中发送的那行代码吗?
    • 抱歉,昨天放学了。我现在尝试了您的代码行,结果非常好。多谢!!! :)
    猜你喜欢
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多