在循环中从 Botbuilder 调用 FormDialog
Call FormDialog from Botbuilder in Loop
嗨,是否有任何选项可以在 Luis-Match 函数中创建第二个 FormDialog。
我的 LUIS 实例找到一种或多种饮料,例如:
我需要[水]。
我需要[茶]和[可乐]。
如果有多个实体,我会要求每个实体提供额外信息。
[LuisIntent("Drinks")]
public async Task Bestellung(IDialogContext context, LuisResult result)
{
entities1 = ... // entities for first drink
entities2 = ... // entities for second drink
orderForm1 = new FormDialog<Drink>(new Drink(), formFunction, FormOptions.PromptInStart, entities1);
await context.Forward(orderForm1, afterFormFunction);
orderForm2 = new FormDialog<Drink>(new Drink(), formFunction, FormOptions.PromptInStart, entities2);
await context.Forward(orderForm2, afterFormFunction);
}
我遇到异常:"invalid need: expected Call, have Poll"
我错在哪里?感谢您的帮助!
必须在 afterFormFunction
ResumeAfter<T>
方法中调用第二个窗体对话框,而不是在第一个 context.Forward
之后调用。
第一个表单对话框结束后,在afterFormFunction
.
中继续执行
嗨,是否有任何选项可以在 Luis-Match 函数中创建第二个 FormDialog。 我的 LUIS 实例找到一种或多种饮料,例如:
我需要[水]。
我需要[茶]和[可乐]。
如果有多个实体,我会要求每个实体提供额外信息。
[LuisIntent("Drinks")]
public async Task Bestellung(IDialogContext context, LuisResult result)
{
entities1 = ... // entities for first drink
entities2 = ... // entities for second drink
orderForm1 = new FormDialog<Drink>(new Drink(), formFunction, FormOptions.PromptInStart, entities1);
await context.Forward(orderForm1, afterFormFunction);
orderForm2 = new FormDialog<Drink>(new Drink(), formFunction, FormOptions.PromptInStart, entities2);
await context.Forward(orderForm2, afterFormFunction);
}
我遇到异常:"invalid need: expected Call, have Poll"
我错在哪里?感谢您的帮助!
必须在 afterFormFunction
ResumeAfter<T>
方法中调用第二个窗体对话框,而不是在第一个 context.Forward
之后调用。
第一个表单对话框结束后,在afterFormFunction
.