gpt4 book ai didi

botframework - 单击确认对话框中的后退按钮后,如何返回到上一个用户对话?

转载 作者:行者123 更新时间:2023-12-02 09:45:41 25 4
gpt4 key购买 nike

我目前正在研究 Bot 框架技术,在我的一个项目中,我想在单击 FORM 中的后退按钮后返回到用户对话,如下图所示。 enter image description here

我知道当用户返回机器人框架模拟器时它会立即返回,但我想要上面的场景。

如何解决上述情况?

最佳答案

如果这是 FormDialog,您可以向表单中的每个元素添加验证步骤。就您而言,您可能正在使用 bool 值“WantsToCreateAccount”或类似的东西?

在 FormBuilder 代码中,您通常会像我在这里所做的那样,使用更简单的表单:

public static IForm<UserData> BuildForm()
{
return new FormBuilder<UserData>()
.Message("Before we start, let me ask you a couple of questions")
.AddRemainingFields()

.Field(new FieldReflector<UserData>(nameof(IsCustomer))
.SetValidate(async (state, value) => await ValidateIsCustomerFieldAsync(state, value)))

.Field(new FieldReflector<UserData>(nameof(HasCustomerId))
.SetValidate(async (state, value) => await ValidateHasCustomerIdFieldAsync(state, value)))

.Build();
}

SetValidate 是这里的关键,您可以在验证该字段后应用您想要的任何逻辑,即

private static Task<ValidateResult> ValidateHasCustomerIdFieldAsync(UserData state, object value)
{
if( (SvarAlternativ) value == SvarAlternativ.Nej)
{
state.CustomerId = "Kund, har inte Id";
}
return Task.FromResult(new ValidateResult { IsValid = true, Value = value });
}

请注意,BOOLEAN 值很难进行验证,因为它是一种不能为 null 的值类型,因此验证器不会查看它是否具有“NoValue”或“false”状态。因此,我刚刚创建了一个枚举,其中零值是机器人框架设置的“NoValue”状态:

public enum SvarAlternativ
{
NoValue,
Ja,
Nej
}

希望这对您有帮助。进入验证方法后,您可以 context.close 或执行任何您需要的操作。

关于botframework - 单击确认对话框中的后退按钮后,如何返回到上一个用户对话?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37882328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com