MS Bot 框架 v4 - 无法将 QnA maker 添加到 bot - 主机名加密值不是有效格式
MS Bot framework v4 - cannot add QnA maker to bot - hostname encrypted value is not a valid format
当前情况: 我目前有一个集成了 LUIS 的网络应用程序机器人 (NODE.js)。我想向机器人添加一个 QnA 制造商。我已经通过 Azure 机器人服务创建了一个 QnA maker,并创建了一个知识库供其使用。
问题: 将 qna maker 详细信息添加到 bot 和 运行 nodemon ./index.js 时,出现错误 "Error: The encrypted value is not a valid format" .我已经测试过,当它在
期间尝试读取主机名值时会抛出此错误
botConfig = BotConfiguration.loadSync(BOT_FILE, process.env.botFileSecret);
将主机名粘贴到浏览器时,Azure 会显示一个 "Your App Service app is up and running" 页面,表明主机名没问题。
问题:
如何进一步调试?会不会是 QnA maker 的设置方式有关?
QnA maker 和 Knoledge base 均已发布 - 我是否必须通过 Azure 门户手动将某些内容添加到机器人的配置中以使其识别 QnA maker?
很多文档都是基于 bot 框架的 v3,不知道它是否仍然适用。
Bot 文件中的 QnA 片段(省略了一些值,不确定它们的敏感度):
{
"type": "qna",
"name": "pathqna",
"KbId": "OMITTED",
"subscriptionId": "OMITTED",
"endpointKey": "OMITTED",
"hostname": "https://pathqna.azurewebsites.net",
"id": "7"
}
我看过的文档:
- https://docs.microsoft.com/en-gb/azure/bot-service/bot-builder-tutorial-dispatch?view=azure-bot-service-4.0&tabs=javascript
- https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/tutorials/create-qna-bot
- https://github.com/Microsoft/botbuilder-tools/blob/master/packages/MSBot/docs/sample-bot-file.json
- https://docs.microsoft.com/en-us/azure/cognitive-services/QnAMaker/how-to/troubleshooting-runtime#how-to-get-latest-qnamaker-runtime-updates
带有空挂锁值的完整 bot 文件(所有省略的值都有真实的密钥并且名称已更改为测试):
{
"name": “Test”,
"padlock": "",
"version": "2.0",
"services": [
{
"tenantId": "OMITTED",
"subscriptionId": "OMITTED",
"resourceGroup": OMITTED,
"serviceName": OMITTED,
"type": "abs",
"name": OMITTED,
"id": "1"
},
{
"connectionString": "OMITTED",
"tenantId": "OMITTED",
"subscriptionId": "OMITTED",
"resourceGroup": OMITTED,
"serviceName": "patha048",
"type": "blob",
"id": "2"
},
{
“appId": "OMITTED",
"appPassword": “OMITTED”,
"endpoint": "http://localhost:3978/api/messages",
"type": "endpoint",
"name": "development",
"id": "3"
},
{
"appId": "OMITTED",
"appPassword": “OMITTED”,
"endpoint": "https://path-a048.azurewebsites.net/api/messages",
"type": "endpoint",
"name": "production",
"id": "4"
},
{
"instrumentationKey": “OMITTED”,
"applicationId": “OMITTED”,
"apiKeys": {},
"tenantId": "OMITTED",
"subscriptionId": "OMITTED",
"resourceGroup": OMITTED,
"serviceName": "Patht6r6m4",
"type": "appInsights",
"id": "5"
},
{
"appId": “OMITTED”,
"authoringKey": “OMITTED”,
"version": "0.1",
"region": "westus",
"type": "luis",
"name": "BasicBotLuisApplication",
"id": "6"
},
{
"type": "qna",
"name": "pathqna",
"id": "7",
"kbId": “OMITTED”,
"subscriptionKey": "OMITTED",
"endpointKey": “OMITTED”,
"hostname": "https://pathqna.azurewebsites.net"
}
]
}
虽然您提供的信息不足以提供解决方案,但您可以按照以下步骤进行检查。
"Error: The encrypted value is not a valid format"
*请再次检查您的机器人密钥。
然后,在您的 bot 文件中,尝试删除挂锁值。
"padlock": ""
此外,我假设在您的实际代码中,您已将“OMITTED”替换为您从 QnAMaker 门户网站获得的实时密钥。*
如果可能,请提供错误的屏幕截图。
找到解决方案 - 使用 msbot cli 添加 QnA maker 而不是手动添加,因为文件已加密,如果不使用 msbot/emulator shrug
我删除了 qna 片段和 运行 这个命令(添加了通用值以保留真实值):
msbot connect qna --secret <botFileSecret> --name pathqna --kbId <KB-ID> --subscriptionKey <SUB_KEY> --endpointKey <ENDPOINT_KEY> --hostname "https://pathqna.azurewebsites.net" --bot Path.bot
这保留了挂锁值并成功添加。
当前情况: 我目前有一个集成了 LUIS 的网络应用程序机器人 (NODE.js)。我想向机器人添加一个 QnA 制造商。我已经通过 Azure 机器人服务创建了一个 QnA maker,并创建了一个知识库供其使用。
问题: 将 qna maker 详细信息添加到 bot 和 运行 nodemon ./index.js 时,出现错误 "Error: The encrypted value is not a valid format" .我已经测试过,当它在
期间尝试读取主机名值时会抛出此错误botConfig = BotConfiguration.loadSync(BOT_FILE, process.env.botFileSecret);
将主机名粘贴到浏览器时,Azure 会显示一个 "Your App Service app is up and running" 页面,表明主机名没问题。
问题:
如何进一步调试?会不会是 QnA maker 的设置方式有关?
QnA maker 和 Knoledge base 均已发布 - 我是否必须通过 Azure 门户手动将某些内容添加到机器人的配置中以使其识别 QnA maker?
很多文档都是基于 bot 框架的 v3,不知道它是否仍然适用。
Bot 文件中的 QnA 片段(省略了一些值,不确定它们的敏感度):
{
"type": "qna",
"name": "pathqna",
"KbId": "OMITTED",
"subscriptionId": "OMITTED",
"endpointKey": "OMITTED",
"hostname": "https://pathqna.azurewebsites.net",
"id": "7"
}
我看过的文档:
- https://docs.microsoft.com/en-gb/azure/bot-service/bot-builder-tutorial-dispatch?view=azure-bot-service-4.0&tabs=javascript
- https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/tutorials/create-qna-bot
- https://github.com/Microsoft/botbuilder-tools/blob/master/packages/MSBot/docs/sample-bot-file.json
- https://docs.microsoft.com/en-us/azure/cognitive-services/QnAMaker/how-to/troubleshooting-runtime#how-to-get-latest-qnamaker-runtime-updates
带有空挂锁值的完整 bot 文件(所有省略的值都有真实的密钥并且名称已更改为测试):
{
"name": “Test”,
"padlock": "",
"version": "2.0",
"services": [
{
"tenantId": "OMITTED",
"subscriptionId": "OMITTED",
"resourceGroup": OMITTED,
"serviceName": OMITTED,
"type": "abs",
"name": OMITTED,
"id": "1"
},
{
"connectionString": "OMITTED",
"tenantId": "OMITTED",
"subscriptionId": "OMITTED",
"resourceGroup": OMITTED,
"serviceName": "patha048",
"type": "blob",
"id": "2"
},
{
“appId": "OMITTED",
"appPassword": “OMITTED”,
"endpoint": "http://localhost:3978/api/messages",
"type": "endpoint",
"name": "development",
"id": "3"
},
{
"appId": "OMITTED",
"appPassword": “OMITTED”,
"endpoint": "https://path-a048.azurewebsites.net/api/messages",
"type": "endpoint",
"name": "production",
"id": "4"
},
{
"instrumentationKey": “OMITTED”,
"applicationId": “OMITTED”,
"apiKeys": {},
"tenantId": "OMITTED",
"subscriptionId": "OMITTED",
"resourceGroup": OMITTED,
"serviceName": "Patht6r6m4",
"type": "appInsights",
"id": "5"
},
{
"appId": “OMITTED”,
"authoringKey": “OMITTED”,
"version": "0.1",
"region": "westus",
"type": "luis",
"name": "BasicBotLuisApplication",
"id": "6"
},
{
"type": "qna",
"name": "pathqna",
"id": "7",
"kbId": “OMITTED”,
"subscriptionKey": "OMITTED",
"endpointKey": “OMITTED”,
"hostname": "https://pathqna.azurewebsites.net"
}
]
}
虽然您提供的信息不足以提供解决方案,但您可以按照以下步骤进行检查。
"Error: The encrypted value is not a valid format" *请再次检查您的机器人密钥。
然后,在您的 bot 文件中,尝试删除挂锁值。
"padlock": ""
此外,我假设在您的实际代码中,您已将“OMITTED”替换为您从 QnAMaker 门户网站获得的实时密钥。*
如果可能,请提供错误的屏幕截图。
找到解决方案 - 使用 msbot cli 添加 QnA maker 而不是手动添加,因为文件已加密,如果不使用 msbot/emulator shrug
我删除了 qna 片段和 运行 这个命令(添加了通用值以保留真实值):
msbot connect qna --secret <botFileSecret> --name pathqna --kbId <KB-ID> --subscriptionKey <SUB_KEY> --endpointKey <ENDPOINT_KEY> --hostname "https://pathqna.azurewebsites.net" --bot Path.bot
这保留了挂锁值并成功添加。