2

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

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

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

有想法该怎么解决这个吗?

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

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

4

2 回答 2

1

将代码复制到本地 VS 时,可能没有在 .env 文件中配置LuisAppId,LuisAPIKey和。LuisAPIHostName

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

根据教程,LuisAppId,LuisAPIKeyLuisAPIHostName应该在 .env 中配置,例如:

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


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

然后toturial中的代码使用这三个参数生成一个LuisModelUrl,你实际上可以直接将你发布luis应用后生成的这个url配置到你的.env文件中。有关详细信息,您可以参考官方的LUIS Bot 示例

于 2018-01-01T02:19:51.110 回答
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 存储帐户的名称和访问密钥。变量 key 和 name 在我的 .env 文件中指定。

于 2018-01-11T07:00:23.960 回答