メインの LuisDialog と他の 2 つのダイアログで構成されるボットがあります。特定の LuisIntent を取得すると、他のダイアログの 1 つ (サンプル Echo Bot) を開始し、そのダイアログを終了すると、メインの LuisDialog に問題なく戻ります。
LuisIntent を取得して FormFlow ダイアログである他のダイアログを開始すると、ダイアログは喜んで開始されますが、ユーザーはダイアログを実行する前に何かを入力する必要があります。そのため、ユーザーは「サンドイッチを注文してください」と入力し、ダイアログで最初のメッセージを取得する前に何かを入力する必要があります。
ユーザーが何も入力するのを待たずに、誰が FormFlow を開始するか、または実際に Dialog を開始し、すぐにそれにジャンプするかを知っている人はいますか? サンドイッチ ダイアログを開始するために使用しているコードは次のとおりです。
internal static IFormDialog<SandwichBot.SandwichOrder> MakeRootDialog()
{
return FormDialog.FromForm(SandwichBot.SandwichOrder.BuildForm);
}
[LuisIntent("OrderSandwich")]
public async Task StartSandwichOrder(IDialogContext context, LuisResult result)
{
IFormDialog<SandwichBot.SandwichOrder> tmp = MakeRootDialog();
context.Call(tmp, SandwichOrderComplete);
}