【问题标题】:Botframework, LUIS: Is there an intents history?Botframework,LUIS:有意图历史吗?
【发布时间】:2018-10-20 12:03:27
【问题描述】:

我正在尝试创建一个集成了 LUIS 的机器人,其目的是搜索食谱和产品,但我很难理解一些概念。

首先,我有一个关于对话流程的问题。假设用户要求一个食谱,但没有指定他想要过滤的产品。机器人将检查此话语中是否有任何实体(产品),如果没有,它将回复询问特定产品。所以像:

用户:“我想看食谱”

Bot:“请说明成分”

用户:“香蕉”

这是我发现我的第一个问题的地方。机器人如何能够理解用户的最后话语(香蕉)是针对食谱意图而不是产品意图的?

为了尝试解决这个问题,我训练了 LUIS 以指导这些实体进入 None Intent。我还创建了一个标志,允许我检测用户最后一次通过的 Intent。由此我可以将机器人重定向到正确的意图。

我觉得一定有比这更好的解决方案。我在这里错过了什么吗?有没有办法跟踪使用的意图的历史记录?我也尝试过使用 context.Wait,但我相信该方法不会接收(或返回)LuisResult,这使得我以后无法检测用户消息中是否有任何实体。

我的第二个问题是,是否有可能让用户发送一条不会输入任何意图而只会被定向到某个方法的消息?

【问题讨论】:

标签: c# botframework bots azure-language-understanding


【解决方案1】:
  [LuisIntent("aa")]
  [LuisIntent("bb")]
 public async Task AaIntentSpecified(IDialogContext context, LuisResult result)
 {


 }
 [LuisIntent("")]
 public async Task IntentNotSpecified(IDialogContext context, LuisResult result)
 {


 }

如果你在 luis 对话框中留下了这样的方法,那么任何没有映射函数的意图都会转到这个函数。意图“aa”和“bb”将转到 AaaIntentSpecified,任何其他意图,如“cc”、“dd”......将转到 IntentNotSpecified。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多