我想建立使用LUIS一个机器人,但它是一个很多困难比我想象的。到目前为止,我已经成功创建了LUIS应用程序,并创建了一个Intent和一个Entity,并且创建了一些看起来工作正常的话语。
然后我建立了我的机器人,并迷上它给Luis。当我测试我的机器人时,它按预期运行。现在是有趣的部分。我想处理参数。在Luis上,我向Intent添加了一个动作:
如您所见,我已经添加了一个提示。我的漫游器中的代码当前如下所示:
/// <summary>
/// Tries to find the category
/// </summary>
/// <param name="result">The Luis result</param>
/// <param name="alarm"></param>
/// <returns></returns>
public string TryFindCategory(LuisResult result)
{
// Variable for the title
EntityRecommendation title;
// If we find our enenty, return it
if (result.TryFindEntity(PiiiCK.Category, out title))
return title.Entity;
// Default fallback
return null;
}
[LuisIntent("Choose category")]
public async Task ChooseCategory(IDialogContext context, LuisResult result)
{
// Get our category
var category = TryFindCategory(result);
var response = "The category you have chosen is not in the system just yet.";
switch (category)
{
case "camera":
response = $"You need help buying a { category }, is this correct?";
this.started = true;
break;
default:
if (!string.IsNullOrEmpty(category)) response = $"Sorry, PiiiCK does not deal with { category.Pluralise() } just yet.";
break;
}
// Post our response back to the user
await context.PostAsync(response);
// Execute the message recieved delegate
context.Wait(MessageReceived);
}
我想你可以猜得出我要去哪里。如果用户键入帮我买一个摄像头,它会去选择种类意图,将有正确的实体选择。但是,如果他们键入“帮助我购买”,它仍然会转到正确的Intent,但不会具有选定的Entity。我想我的机器人看到,并在使用的文字提示在LUIS创建,当用户选择他们我的实体,我希望它回到LUIS与参数。
我不知道该怎么做,也找不到任何教程。任何帮助将不胜感激(甚至链接!)
首先,您需要确保在包含类别的语音中将其标记为“类别”实体。只需选择代表您实体的一个或多个单词,然后单击实际类别,然后再提交话语即可完成此操作。
这与您添加的操作参数无关。要检查动作参数,您需要浏览实际意图。该IntentRecommendation有一个操作集合属性; 其中包含一个Parameters集合属性。
东西在这里补充,是在发展分公司,BotFramework队刚刚添加LUIS版API支持,并增加了一些全新的capabilitites。
例如,如果您的意图需要参数而未提供参数,则现在LuisDialog将起作用。在这种情况下(这似乎是你的),该LuisDialog会自动启动一个LuisActionDialog并询问用户失踪的参数,使用你在动作参数定义的提示信息。
请注意,这尚未发布为Nuget包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句