如何将 Luis 集成到机器人构建器中
How to integrate Luis into bot builder
我正在尝试将 FormBuilder
与我在 Luis 中创建的意图结合使用。我只是找不到执行此操作的文档。
我想做以下事情:
- 用户将输入由 Luis 解释的短语。
- 如果短语中没有给出所有实体,表单生成器将填补空白。
我该怎么做?有教程吗?我看到有人在谈论 LuisDialogs
,但我不知道从哪里开始。
简而言之:
- 首先您必须在 luis.ai.
上创建一个帐户
- 然后您需要遵循此文档:http://docs.botframework.com/sdkreference/csharp/dialogs.html(它以 classical Dialogs 开始,但以 Luis 集成结束。)
这里有一些步骤(但你一定要遵循我链接的指南):
基本上它是一个 class 继承 LuisDialog<object>
并且你必须在它上面放置一个属性,其中包含你的 Luis id 和密码
[LuisModel("c413b2ef-382c-45bd-8ff0-f76d60e2a821", "6d0966209c6e4f6b835ce34492f3e6d9")]
[Serializable]
public class SimpleAlarmDialog : LuisDialog<object>
{ [...]
然后将方法添加到 class 并用 LuisIntent(...)
属性装饰它们。
[LuisIntent("builtin.intent.alarm.turn_off_alarm")]
public async Task TurnOffAlarm(IDialogContext context, LuisResult result)
{ [...]
在该方法中,您可以使用如下代码搜索是否找到实体:
EntityRecommendation title;
if (result.TryFindEntity(Entity_Alarm_Title, out title))
{
what = title.Entity;
}
else
{
what = DefaultAlarmWhat;
}
最后,要启动对话框,您必须在控制器中调用它:
public async Task<Message> Post([FromBody]Message message)
{
if (message.Type == "Message")
{
// return our reply to the user
return await Conversation.SendAsync(message, () => new EchoDialog());
}
else
{
return HandleSystemMessage(message);
}
}
我正在尝试将 FormBuilder
与我在 Luis 中创建的意图结合使用。我只是找不到执行此操作的文档。
我想做以下事情:
- 用户将输入由 Luis 解释的短语。
- 如果短语中没有给出所有实体,表单生成器将填补空白。
我该怎么做?有教程吗?我看到有人在谈论 LuisDialogs
,但我不知道从哪里开始。
简而言之:
- 首先您必须在 luis.ai. 上创建一个帐户
- 然后您需要遵循此文档:http://docs.botframework.com/sdkreference/csharp/dialogs.html(它以 classical Dialogs 开始,但以 Luis 集成结束。)
这里有一些步骤(但你一定要遵循我链接的指南):
基本上它是一个 class 继承 LuisDialog<object>
并且你必须在它上面放置一个属性,其中包含你的 Luis id 和密码
[LuisModel("c413b2ef-382c-45bd-8ff0-f76d60e2a821", "6d0966209c6e4f6b835ce34492f3e6d9")]
[Serializable]
public class SimpleAlarmDialog : LuisDialog<object>
{ [...]
然后将方法添加到 class 并用 LuisIntent(...)
属性装饰它们。
[LuisIntent("builtin.intent.alarm.turn_off_alarm")]
public async Task TurnOffAlarm(IDialogContext context, LuisResult result)
{ [...]
在该方法中,您可以使用如下代码搜索是否找到实体:
EntityRecommendation title;
if (result.TryFindEntity(Entity_Alarm_Title, out title))
{
what = title.Entity;
}
else
{
what = DefaultAlarmWhat;
}
最后,要启动对话框,您必须在控制器中调用它:
public async Task<Message> Post([FromBody]Message message)
{
if (message.Type == "Message")
{
// return our reply to the user
return await Conversation.SendAsync(message, () => new EchoDialog());
}
else
{
return HandleSystemMessage(message);
}
}