私はrootのダイアログとしてチェーンメッセージを使って会話をユーザーメッセージで切り替えたいと思っています。たとえば、ユーザーが「help」と書いてHelpDialogを呼び出し、他の入力をLuisDialogで管理できるようにします。Chain FluentダイアログでLuisDialogを使用するには?
私の問題は、LuisDialogがユーザーからのメッセージを待つので、チェーン環境では、Luisが自分の意図を返す前に入力を2回書き込む必要があるということです。
これは私のサンプルコードです:
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を使用することが可能ですか?
マルコ
ダイアログを連鎖させる最適なソリューションの1つは、必要に応じてダイアログ内でcontext.forwardとcontext.callを使用することができます。 – OmG