基本上按照本教程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
(没有足够的声誉发布图片 - 抱歉!)
答案 0 :(得分:1)
将代码复制到本地VS时,您可能无法在.env文件中配置LuisAPIKey
,LuisAPIHostName
和LuisAppId
。
在门户网站中,它会自动从应用设置中获取这些密钥,但在本地,我们需要在我们的代码中配置它们。
根据教程,应在.env中配置LuisAPIKey
,LuisAPIHostName
和# 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文件中指定。