gpt4 book ai didi

c# - 为什么 BotConnector 的行为与模拟器不同?

转载 作者:行者123 更新时间:2023-12-03 04:31:18 25 4
gpt4 key购买 nike

我正在使用最近发布的 Microsoft Bot Framework。我执行了以下步骤:

  1. 使用 IDialog ( Echo Bot sample ) 创建一个简单的机器人,使用模拟器进行测试,部署到 Azure 应用服务并在 dev.botframework.com 上注册。一切正常。

  2. 使用 LuisDialog 更新了机器人以与 Luis 配合使用,并添加了 [LuisModel] 和 [LuisIntent] 属性(基于 Alarm Bot sample )并将其部署到云端。

之后我有一个奇怪的行为:

本地和云部署都使用模拟器按预期工作,并且 Luis 部分运行良好。

当从 BotConnector 测试连接触发相同的机器人时,它不会绑定(bind) Luis,而是进入 MessageReceivedAsync。

我检查了机器人路径、应用程序 ID 和 key ,重新部署了 AppService 并重新注册了机器人,但仍然得到相同的行为。

我的 ReceiveMessageAsync 看起来如下:

private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> result)
{
var message = await result;

await context.PostAsync("You have just said: " + message.Text);
context.Wait(MessageReceivedAsync);
}

我不删除它的原因是因为没有它测试连接将停止工作。另一方面,模拟器运行良好。

BotConnector 和模拟器中指向同一端点的测试连接是否总是返回相同的结果?或者,我错过了什么吗?

最佳答案

是的,机器人连接器和模拟器发送相同的消息。

您的代码是否返回相同的值取决于您处理消息的方式、调用环境(通过 HTTP 从本地主机调用,而不是通过 HTTPS 远程调用)以及托管环境(通常是 IIS Express 中的调试位与发布位)在 IIS 中,对于 C# 应用程序)。

关于c# - 为什么 BotConnector 的行为与模拟器不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36356926/

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