/virtual-assistant/tutorials/create-assistant/typescript/4-provision-you-azure-resources/
我已经尝试在 C# 和 Typescript 版本中创建和配置基于 QnA 的聊天机器人,对于 Windows(默认)配置,它运行良好,并且在 qnamaker 中创建所有资源和知识库而不会失败。
但是当我尝试在 Linux 操作系统上托管基础设施(应用服务计划和机器人服务)时(通过简单地将种类更改为 Linux)
“kind”:应用服务计划的“linux”,它虽然创建了所有必需的(应用服务计划、认知服务、Web 应用程序机器人服务、搜索服务等)但不创建知识库。
似乎 VA 模板或整体部署不支持 Linux 版本部署,因为我在 C# 和 Typescript 版本中都尝试过
即使在创建所有服务之后,如果我尝试手动创建知识库,它也会抛出错误,因为找不到端点键
嗨@pravinambekar ,您在哪个文件kind
更改为 Linux?
我们将对此进行研究,并会在我们有更新时立即通知您:slightly_smiling_face :。
你好@VictorGrycuk ,用于创建资源的ARM模板,这里同时定义应用服务计划。
{
"comments": "app service plan",
"type": "Microsoft.Web/serverFarms",
"apiVersion": "2018-02-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"kind": "linux",
"sku": "[parameters('appServicePlanSku')]",
"properties": {"reserved": true},
"tags": {
"[parameters('resourceTagName')]": "[parameters('resourceTagValue')]"
}
嗨@pravinambekar ,抱歉耽搁了。 我们使用虚拟助手按照您提到的这些步骤成功重现了该问题:
template.json
json
{
"comments": "app service plan",
"type": "Microsoft.Web/serverFarms",
"apiVersion": "2018-02-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"kind": "linux",
"sku": "[parameters('appServicePlanSku')]",
"properties": {"reserved": true},
"tags": {
"[parameters('resourceTagName')]": "[parameters('resourceTagValue')]"
}
此外,我们尝试使用qnamaker门户创建它们,但我们收到了No Endpoint keys found
相同的错误。
一旦我们有任何更新,我们会在这里回复您😊。
_使用 Linux 的应用服务计划_
_知识库不是使用 deploy.ps1_ 生成的
_问题转载_
@pravinambekar - 在研究并找到您评论的 Azure/azure-cli#9004 问题后,我们认为这不是虚拟助手本身与botframework-solutions
@lauren-mills 您知道 QnAMaker 认知服务是否与 Linux 应用服务计划兼容吗?
最后但并非最不重要的是,我们注意到在BotBuilder-Samples存储库中,团队正在努力在template.json ,但是,我们没有找到包含知识库的适用于 Linux 的template.json
.
你好@Batta32 ,我完全同意你的看法,过去几天我一直在尝试不同的方法,我能够使用基于 VA 的template.json
和部署脚本托管/配置基于 Linux 平台的所有资源,
我的主要理解是 QnAMaker 认知服务不支持基于 Linux 的服务,也不会自动创建知识库,即使在手动创建过程中也会出现“未找到端点键”错误。
可能@lauren-mills 可以对此有所了解。
嗨@pravinambekar ,我联系了 QnA Maker 团队,他们确认 QnA Maker v1 不支持 Linux,因为它是通过站点扩展进行部署的。 他们建议切换到 QnA Maker v2,它不需要单独的运行时应用程序服务。 您能否尝试更新您的 ARM 模板并告诉我们这是否适合您?
意识到似乎没有关于部署 v2 实例的明确说明,因此我正在跟进 QnA Maker 团队以获取更多信息。
感谢@lauren-mills 的后续文字,
这正是我从昨天开始一直在寻找的,因为我对在 ARM 中使用 QnAMaker V2 API 有点困惑,因为它只是资源的定义。
这是我从 QnA Maker 获得的链接,它告诉我如何直接在 Azure 门户中部署它。 明天我将研究如何将其转换为 ARM 模板,并在此处添加这些详细信息。 https://techcommunity.microsoft.com/t5/azure-ai/introducing-qna-maker-managed-now-in-public-preview/ba-p/1845575
我部署了一个qnamaker v2实例,这是对应的ARM模板。 您可以尝试将其添加到部署脚本中的 ARM 模板中以代替现有的 qna 服务,看看它是否有效? 我不确定 kb 部署是否相同,但值得尝试:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"name": {
"defaultValue": "<your-service-name>",
"type": "String"
},
"search-name": {
"defaultValue": "<your-service-name>-search",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.CognitiveServices/accounts",
"apiVersion": "2017-04-18",
"name": "[parameters('name')]",
"location": "southcentralus",
"sku": {
"name": "S0"
},
"kind": "QnAMaker.v2",
"properties": {
"apiProperties": {},
"customSubDomainName": "[parameters('name')]",
"privateEndpointConnections": [],
"publicNetworkAccess": "Enabled"
}
},
{
"type": "Microsoft.Search/searchServices",
"apiVersion": "2020-08-01",
"name": "[parameters('search-name')]",
"location": "West US",
"sku": {
"name": "standard"
},
"properties": {
"replicaCount": 1,
"partitionCount": 1,
"hostingMode": "Default",
"publicNetworkAccess": "Enabled",
"networkRuleSet": {
"ipRules": []
}
}
}
]
}
感谢@lauren-mills 以及在此讨论线程中做出贡献的每个人,最后,我现在能够运行基于 Linux 计划的全功能 QnAMaker 聊天机器人,
不仅解决了有关 Linux 的问题,而且解决了 QnAMaker 认知服务的工作方式,它允许多语言知识库支持,并且不需要额外的应用程序服务。
尽管如此,新的 QnAMaker API 版本对 ARM 资源用于配置的方式几乎没有变化。
谢谢和干杯:)
最有用的评论
这是我从 QnA Maker 获得的链接,它告诉我如何直接在 Azure 门户中部署它。 明天我将研究如何将其转换为 ARM 模板,并在此处添加这些详细信息。 https://techcommunity.microsoft.com/t5/azure-ai/introducing-qna-maker-managed-now-in-public-preview/ba-p/1845575