Я хотел бы использовать сетевой интерфейс в качестве моего корневого диалога для переключения разговора по пользовательскому сообщению, например, я могу вызвать HelpDialog, если пользователь напишет «help», а другие входы управляются LuisDialog.Как использовать свободный диалог LuisDialog в цепочке?
Моя проблема заключается в том, что LuisDialog ожидает сообщения от пользователя, поэтому в сетевой среде пользователь должен написать дважды ввод, прежде чем Луис вернет одно из своих намерений.
Это мой пример кода:
public static readonly IDialog<string> dialog = Chain
.PostToChain()
.Switch(
new Case<IMessageActivity, IDialog<string>>(msg =>
{
var regex = new Regex("^help$", RegexOptions.IgnoreCase);
return regex.IsMatch(msg.Text);
},
(ctx, msg) =>
{
return new HelpDialog();
}),
new DefaultCase<IMessageActivity, IDialog<string>>(
(ctx, msg) => {
return new MyLuisDialog();
})
)
.Unwrap().PostToUser();
Можно ли использовать LuisDialog с цепочкой или как я могу использовать несколько Диалоги вместе?
Благодаря Marco
Одним из лучших решений для связывания диалога может быть использование context.forward и context.call внутри диалогового окна, когда вам нужно. – OmG