我最近使用Microsoft Azure的Cognitive Services和Bot Framework创建了一个聊天机器人,使用QnA Maker作为主要工具 . 在开发甚至发布机器人几周后,我决定进行后续步骤并进行一些需要机器人在本地运行的更改和优化 . 我设法从Azure门户下载源代码作为.zip文件,使用IDE Visual Studio 2017并使用我的测试工具Bot Framework Emulator(V4) .
经过一段时间(以及很多问题,在Azure Bot Framework Emulator Error - System.ArgumentNullException: Value cannot be null中解决了),我终于让代码在本地运行了 . 尽管如此,我还是无法使用Bot Framework Emulator与它进行正确的通信 . 它似乎已连接,但每次我发送消息时,我都得不到答案,但是 POST 202 directline.postActivity
,如下图所示:
因此,我无法在Bot框架模拟器中测试我的机器人...任何人都可以帮我找出发生了什么?非常感谢你!
2 回答
要解决此问题,您可以在 MessagesController 中设置断点并检查是否可以命中它,并调试代码以检查您发送的消息是否可以到达 QnAMakerDialog .
我在Azure门户上使用问答(C#)模板创建机器人服务并下载源代码,然后修改代码并使用Bot Framework Emulator在本地主机上运行和测试,这对我有用 . 您可以将我的代码与您的代码进行比较,或者使用您的QnA Maker知识库测试我的代码,以检查它是否适合您 .
Test Result:
当你是 debugging locally 时,尝试注释掉Azure表存储设置部分代码(如果还没有) . 这应该可以解决您的问题 .
或者,如果你不想评论你的东西,你可以试试这个:
// Basically you need to check the environment if(process.env.BotEnv === 'prod') { bot.set('storage', tableStorage); }