LUIS:无法传递操作参数(使用对话框执行)

LUIS: Action Parameter cannot be passed (with Dialog Execution)

通过使用 LUIS and it's "Dialog Execution" under Action Binding,我希望能够提供 必需的参数 (操作)。 (以便触发Action,或者继续Dialog。)

据我了解,一旦要求提供参数,我们应该在后续的查询调用中提供它。例如:

第一次查询:

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/...?subscription-key=...&q=what are the available items

然后,它问我“在什么类别下?”(希望我提供所需的参数),例如:

那我在后续查询中提供了:

https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/...?subscription-key=...&q=electronics&contextId=d754ce3...

但是,似乎我仍然没有接受该值,因此它仍然显示为 null。像这样:

所以参数没有被捕获。这样就可以触发 Action 了。 (或者我无法到达下一个参数,如果有的话)

我是不是做错了什么,或者问题出在哪里?

(下面是带有 "Action Parameters" 的 Intent 的屏幕截图)

我以前有过这种经历。 (事实上​​它仍然发生)。即使在Microsoft's Official LUIS API Example DEMOS它仍然发生


例如,在他们的 Weather Bot 那里,试试像这样的东西:

:明天天气怎么样?
Bot:你喜欢哪里的天气?
:新加坡
机器人

{
  "name": "location",
  "required": true,
  "value": null
}

那么现在再试一次,比如:

:明天天气怎么样?
Bot:你喜欢哪里的天气?
:在新加坡
机器人

{
  "name": "location",
  "required": true,
  "value": [
    {
      "entity": "singapore",
      "type": "builtin.geography.country"
    }
  ]
}

结论?

介词! (in, at, on, by, under, ...) 有时,在某些情况下,LUIS 仍然无法理解没有提供正确介词的实体输入。

我很确定这就是您的原因。用介词重试。

(这个问题花了我1~2周的时间才意识到。希望微软能尽快在所有这些方面更好地改进LUIS。)