Microsoft Azure LUIS 应用程序模拟器没有回复

Microsoft Azure LUIS app emulator no reply

基本上按照本教程设置 Azure Bot https://docs.microsoft.com/en-us/azure/cognitive-services/luis/luis-nodejs-tutorial-build-bot-framework-sample,当我在在线网络聊天中测试它时,代码工作正常 - 意图被识别并且 bot 响应。

但是,当我尝试 运行 通过 Visual Studio Community 2017 复制相同的代码并设置为本地 git 存储库时,机器人似乎没有回复.

当我通过模拟器向机器人发送消息时,我现在没有遇到任何错误(聊天连接器将其注册为收到的消息)。

关于如何解决这个问题有什么想法吗?

http://i1376.photobucket.com/albums/ah21/michael_liang1/stack%20overflow_zpsrvsazqvt.png

(还没有足够的声誉来 post 图片 - 抱歉!)

可能是你复制代码到本地VS中时,.env文件中的LuisAppIdLuisAPIKeyLuisAPIHostName没有配置。

在门户中,它会自动从应用程序设置中获取这些密钥,但在本地,我们需要在代码中配置它们。

根据教程,LuisAppIdLuisAPIKeyLuisAPIHostName 应该在 .env 中配置,例如这样:

# Bot Framework Variables
MICROSOFT_APP_ID=<YOURAPPID>
MICROSOFT_APP_PASSWORD=<YOURAPPPASSWORD>


LuisAppId=<YOURLUISAPPID>
LuisAPIKey=<YOURLUISKEY>
LuisAPIHostName=<YOURAPIHOSTNAME>

然后toturial里的代码就是用这三个参数生成一个LuisModelUrl,其实你可以直接把你发布luis app后生成的这个url配置到你的.env文件中。更多信息可以参考官方LUIS Bot Sample.

问题已解决。看来您需要将参数添加到 botbuilder SDK 的 AzureTableClient 方法中,以包含在 Azure 中托管的现有存储帐户的名称和密钥。

var tableName = 'botdata';
var azureTableClient = new botbuilder_azure.AzureTableClient(tableName, process.env.AzureTableName, process.env.AzureTableKey); //process.env['AzureWebJobsStorage']
var tableStorage = new botbuilder_azure.AzureBotStorage({ gzipData: false }, azureTableClient);

我添加了 process.env.AzureTableName 和 process.env.AzureTableKey,这是我创建的 Azure 存储帐户的名称和访问密钥。变量键和名称在我的 .env 文件中指定。