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

时间:2017-12-29 00:45:14

标签: node.js azure bots botframework azure-bot-service

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

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

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

有关如何解决此问题的任何想法?

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

(没有足够的声誉发布图片 - 抱歉!)

2 个答案:

答案 0 :(得分:1)

将代码复制到本地VS时,您可能无法在.env文件中配置LuisAPIKeyLuisAPIHostNameLuisAppId

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

根据教程,应在.env中配置LuisAPIKeyLuisAPIHostName# Bot Framework Variables MICROSOFT_APP_ID=<YOURAPPID> MICROSOFT_APP_PASSWORD=<YOURAPPPASSWORD> LuisAppId=<YOURLUISAPPID> LuisAPIKey=<YOURLUISKEY> LuisAPIHostName=<YOURAPIHOSTNAME> ,例如:

LuisModelUrl

然后,toturial中的代码使用这三个参数生成{{1}},您实际上可以直接将发布luis应用程序后生成的URL配置到.env文件中。有关详细信息,请参阅官方inference from mapped types

答案 1 :(得分:1)

解决了这个问题。您似乎需要在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文件中指定。