Botframework-solutions: 如果选择操作系统为 Linux,则不创建知识库

创建于 2021-02-17  ·  11评论  ·  资料来源: microsoft/botframework-solutions

/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 版本中都尝试过
即使在创建所有服务之后,如果我尝试手动创建知识库,它也会抛出错误,因为找不到端点键
NoEndpoint

Bot Services Kobuk Docs customer-replied-to customer-reported

最有用的评论

这是我从 QnA Maker 获得的链接,它告诉我如何直接在 Azure 门户中部署它。 明天我将研究如何将其转换为 ARM 模板,并在此处添加这些详细信息。 https://techcommunity.microsoft.com/t5/azure-ai/introducing-qna-maker-managed-now-in-public-preview/ba-p/1845575

所有11条评论

@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 ,抱歉耽搁了。 我们使用虚拟助手按照您提到的这些步骤成功重现了该问题:

  1. 转到template.json
  2. 使用您附加的配置替换应用服务计划
    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')]" }
  3. 执行deploy.ps1
  4. 检查部署是否使用 Linux 作为操作系统完成了应用服务计划的生成
  5. 在不生成知识库的情况下检查部署是否已完成

此外,我们尝试使用qnamaker门户创建它们,但我们收到了No Endpoint keys found相同的错误。

一旦我们有任何更新,我们会在这里回复您😊。

_使用 Linux 的应用服务计划_
image

_知识库不是使用 deploy.ps1_ 生成的
image

_问题转载_
image

@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 资源用于配置的方式几乎没有变化。

谢谢和干杯:)

此页面是否有帮助?
0 / 5 - 0 等级