gpt4 book ai didi

c# - 如何在 Microsoft Bot Framework 中提供延迟响应

转载 作者:太空狗 更新时间:2023-10-29 21:53:16 24 4
gpt4 key购买 nike

我正在使用 Microsoft Bot Framework FormFlow 让用户填写表单。完成后,对话框结束,并执行为 ResumeWith 参数指定的方法(在本例中为 quoteComplete):

var quoteForm = new FormDialog<Quote>(new Quote(), 
quoteFormBuilder.BuildForm, FormOptions.PromptInStart);

context.Call<Quote>(quoteForm, quoteComplete);

quoteComplete 中,我希望机器人告诉用户它正在获取报价,这可能需要几秒钟。然后完成执行报价的异步调用,返回时我希望机器人显示另一条消息,其中包含报价的值:

await context.PostAsync("I will now calculate your quote. I won't be long...");
context.Wait(MessageReceived);

//Simulate getting the quote
Task.Delay(5000).ContinueWith(t =>
{
context.PostAsync("Your quote is £133.54");
});

我还尝试按照文档中的建议将其放入 Delay().ContinueWith 以发送多个回复:

var message = context.MakeMessage();
message.Text = "Your quote is for £133.54";
var connector = new ConnectorClient();
connector.Messages.SendMessage(message);

但是,我收到了一个Access Denied错误。

最佳答案

尝试通过以下方式实例化客户端

using (var scope = DialogModule.BeginLifetimeScope(Conversation.Container, message))
{
var client = scope.Resolve<IConnectorClient>();
client.Messages.SendMessage(message);
}

关于c# - 如何在 Microsoft Bot Framework 中提供延迟响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37243415/

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