gpt4 book ai didi

c# - 机器人框架 : How to exit Conversation?

转载 作者:可可西里 更新时间:2023-11-01 08:49:17 25 4
gpt4 key购买 nike

所以现在我正在使用 Microsoft.Bot.Builder.Dialogs.Conversation.SendAsyncMicrosoft.Bot.Builder.Dialogs.Conversation.ResumeAsync 来实现一个暂停和恢复对话的方法,但似乎不可能“退出”或返回到以前的状态。它卡在对话对话框中。

我是否只执行“取消”命令?如果是这样,我需要清除哪些数据才能恢复到原始状态?

    public static readonly IDialog<string> dialog = Chain
.PostToChain()
.Switch(
new Case<Message, IDialog<string>>((msg) =>
{
var regex = new Regex("login", RegexOptions.IgnoreCase);
return regex.IsMatch(msg.Text);
}, (ctx, msg) =>
{
return Chain.ContinueWith(new ChatDialog(msg),
async (context, res) =>
{
var token = await res;
//var valid = await Helpers.ValidateAccessToken(token);
//var name = await Helpers.GetProfileName(token);
var name = "User";
context.UserData.SetValue("name", name);
return Chain.Return($"You are logged in as: {name}");
});
})
).Unwrap().PostToUser();

因此,如果我发送“登录”,它将开始一个新的 ChatDialog 对话,但它似乎陷入了这种状态。即使我尝试发送另一个命令,它也会继续要求登录。我是否实现另一个 Case 类来处理“取消”命令?或者当用户多次发送相同的“登录”命令时它应该自动取消对话吗?必须单独发送“取消”命令似乎有点笨拙。

最佳答案

我认为您缺少 DefaultCase。检查this .它显示了 Facebook Auth 示例的 DefaultCase 的实现。顺便说一句,在该示例中,他们还有一个注销命令。

关于c# - 机器人框架 : How to exit Conversation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37125948/

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