使用LUIS及其"Dialog Execution" under Action Binding,我希望能够提供必需参数(动作)。 (这样可以触发Action,或者可以继续对话。)
据我了解,一旦要求提供参数,我们应该在后续查询调用中提供它。例如:
首先查询:
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。 (或者我无法达到下一个参数,如果有的话)
我做错了什么,或者看起来好像是什么问题?
(下面是那个含有"动作参数&#34的意图的截图;)
答案 0 :(得分:1)
我以前经历过这个。 (事实上它仍然发生)。即使在Microsoft's Official LUIS API Example DEMOS,仍然会发生。
例如,在 Weather Bot 中,只需尝试以下内容:
你:明天天气怎么样?
Bot :你想在哪里看天气?
你:新加坡
Bot :
{
"name": "location",
"required": true,
"value": null
}
然后再试一次,如:
你:明天天气怎么样?
Bot :你想在哪里看天气?
你:在新加坡
Bot :
{
"name": "location",
"required": true,
"value": [
{
"entity": "singapore",
"type": "builtin.geography.country"
}
]
}
<强>介词强>! (in,at,on,by,under,...)LUIS在没有提供适当的介词的情况下仍然不理解实体输入,有时候,在某些情况下。
我很确定这就是你的理由。用介词再试一次。
(这个问题花了我一两个星期才意识到。希望微软可以在所有这些方面更好地改进LUIS。)