【发布时间】:2017-11-03 09:55:29
【问题描述】:
我有一个逐步向用户提出的问题,其中每个问题都是一个对话。我可以有一个分步流程并且每个流程都有不同的 LUIS 意图吗?最好的方法是什么?
我不确定如何为每个对话框分配一个意图,因为在RoomReservationDialog 中,我只是为第一步实例化对话框,即RoomReservationNameDialog。然后在 RoomReservationNameDialog 内部,我只是在 MessageReceived 方法中实例化下一步是 RoomReservationDateTimeDialog。
class RoomReservationDialog
{
protected override async Task StartAsync(IDialogContext context)
{
context.Call(new RoomReservationNameDialog(), MessageReceived);
}
}
class RoomReservationNameDialog
{
public override async Task StartAsync(IDialogContext context)
{
// ask question
}
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
{
…
context.Call(new RoomReservationDateTimeDialog(), HandleResult);
}
}
【问题讨论】:
-
你能在这里解释一下你的用例吗?为什么你希望每个意图都有一个对话框,而不是把所有的意图都放在一个对话框中?
-
@JasonSowers,这是因为要求信息的一步一步的性质。基本上,当用户回答房间名称时,我们只希望 LUIS 获取特定于 Room.AnswerName 的意图和实体。例如,如果用户在询问房间名称时回答了日期,我们不希望 LUIS 将其处理为 Room.AnswerDateTime,因为这是一个不同的步骤。
标签: c# botframework azure-language-understanding