首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在LUIS中的实体和意图识别之后,为了向用户提供响应,机器人的逻辑可以是什么?

在LUIS中的实体和意图识别之后,为了向用户提供响应,机器人的逻辑可以是什么?
EN

Stack Overflow用户
提问于 2017-07-06 15:07:16
回答 1查看 266关注 0票数 0

例如,如果用户问机器人“天气怎么样”,luis将识别该实体,机器人将询问位置。在那之后,机器人必须从一个点上选择一个答案,并必须用一个答案回复用户。我不能对用户进行‘回复回复’。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-06 20:20:50

你是否在你的对话中使用了标准的瀑布方法?例如,以下代码取自我构建的一个演示(用TypeScript编写):

代码语言:javascript
复制
bot.dialog("location", [
        (sess, args, next) => {
            builder.Prompts.choice(sess, "We are showing multiple results. Please choose one:", getEntities(builder, args));
        },
        (sess, results) => {
            sess.send(new builder.Message(sess).addAttachment(dialogs.createHeroCard(sess, parser.findExact("title", results.response.entity))));
        }
    ]).triggerAction({
        matches: "location"
});

在本例中,LUIS中的intent被标记为"location",因此triggerAction会对其进行匹配。该对话框有两个功能。第一个是在LUIS返回时调用的,它显示一个包含多个选项的选择对话框。当用户选择其中一个选项时,结果将在第二个函数中结束。因此,这包括两个问题。首先,用户询问在哪里举行特定的演讲约定,机器人返回一些与意图匹配的项目(可能在会议上有三个关于“机器人”的演示)。它显示一个包含元素的选择对话框,用户的选择将返回到对话框(但在第二个函数中),并发送所选演示文稿的主人公卡片。

在第一个实例中,机器人使用builder.Prompts.choice()请求选择信息,第二个响应使用session.send()显示结果。

在您的示例中,您可以使用builder.Prompts.text()询问用户的位置,在收到响应(在瀑布的第二个函数中以results.response的形式提供,如果您的函数参数是sessionresults)时,您将解析该数据,然后使用session.send()显示结果。

因此,如果将其转换为您的示例,您可能会这样做:

代码语言:javascript
复制
bot.dialog("weather", [
        (sess, args, next) => {
            builder.Prompts.text(sess, "What location do you want weather for?");
        },
        (sess, results) => {
            //Do something with the results
            sess.send("Here's the weather!");
    }
    ]).triggerAction({
        matches: "weather"
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44941975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档