有什么方法可以使用 ARM 模板完全自动化基于 QnAMaker 的 Azure Bot

Is there any way to completely automate QnAMaker based Azure Bot with ARM template

我正在寻找一种解决方案,我应该能够在 ARM 模板的帮助下完全创建和配置 Azure Bot(它应该包括创建资源、知识库和 Web 应用程序机器人)

我的问题是:

有什么方法可以完全自动化

  1. 资源创建
  2. 知识库创建
  3. 正在创建网络应用程序机器人

在单个自动化脚本中 因为它们是相互依赖的(服务知识库,知识库上的 Web App Bot)我几乎找不到相关的文章来实现这一点。

谢谢。

使用通过 ARM. Our ready ARM Templates are available here: https://github.com/Azure/azure-quickstart-templates 部署的 QnAMaker 服务创建知识库。在端点密钥下方插入 qna maker 应用程序服务的应用程序配置中。

{
            "type": "Microsoft.Web/sites",
            "apiVersion": "2016-08-01",
            "name": "[variables('qnaMakerWebName')]",
            "location": "[resourceGroup().location]",
            "properties": {
                "enabled": true,
                "httpsOnly": true,
                "siteConfig": {
                    "cors": {
                        "allowedOrigins": []                                                   
                    }
                },
                "name": "[toLower(variables('qnaMakerWebName'))]",
                "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('serverFarmName'))]",
                "hostingEnvironment": ""
            },
            "tags": {
                "isqnamaker": "true",
                "solution": "[parameters('resourceSolutionTag')]",
                "[concat('hidden-related:', resourceId('Microsoft.Web/serverfarms', variables('serverFarmName')))]": "empty"
            },
            "dependsOn": [
                "[resourceId('Microsoft.Web/serverfarms', variables('serverFarmName'))]",
                "[resourceId('microsoft.insights/components', variables('appInsightsName'))]",
                "[concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))]"
            ],
            "resources": [
                {
                    "apiVersion": "2015-08-01",
                    "name": "appsettings",
                    "type": "config",
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', variables('qnaMakerWebName'))]",
                        "[resourceId('Microsoft.Search/searchServices/', variables('azureSearchName'))]",
                        "[resourceId('microsoft.insights/components', variables('appInsightsName'))]"
                    ],
                    "properties": {
                        "AzureSearchName": "[variables('azureSearchName')]",
                        "AzureSearchAdminKey": "[listAdminKeys(resourceId('Microsoft.Search/searchServices/', variables('azureSearchName')), '2015-08-19').primaryKey]",
                        "UserAppInsightsKey": "[reference(resourceId('microsoft.insights/components/', variables('appInsightsName')), '2015-05-01').InstrumentationKey]",
                        "UserAppInsightsName": "[variables('appInsightsName')]",
                        "UserAppInsightsAppId": "[reference(resourceId('microsoft.insights/components/', variables('appInsightsName')), '2015-05-01').AppId]",
                        "PrimaryEndpointKey": "[concat(variables('qnaMakerWebName'), '-PrimaryEndpointKey')]",
                        "SecondaryEndpointKey": "[concat(variables('qnaMakerWebName'), '-SecondaryEndpointKey')]",
                        "DefaultAnswer": "No good match found in KB.",
                        "QNAMAKER_EXTENSION_VERSION": "latest"
                    }
                },
                {
                    "apiVersion": "2018-02-01",
                    "type": "config",
                    "name": "logs",
                    "dependsOn": [
                        "[resourceId('Microsoft.Web/Sites', variables('qnaMakerWebName'))]"
                    ],
                    "properties": {
                        "applicationLogs": {
                            "fileSystem": {
                                "level": "Warning",
                                "retentionInDays": 7
                            },
                            "azureBlobStorage": {
                                "level": "Verbose",
                                "sasUrl": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob, parameters('storageAccountContainerQnaAppLog'), '?', listAccountSas(variables('storageAccountName'), '2018-02-01', variables('listAccountSasRequestContent')).accountSasToken)]",
                                "retentionInDays": 7
                            }
                        },
                        "httpLogs": {
                            "fileSystem": {
                                "retentionInMb": 35,
                                "retentionInDays": 7,
                                "enabled": false
                            },
                            "azureBlobStorage": {
                                "enabled": true,
                                "sasUrl": "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('storageAccountName'))).primaryEndpoints.blob, parameters('storageAccountContainerQnaWebLog'), '?', listAccountSas(variables('storageAccountName'), '2018-02-01', variables('listAccountSasRequestContent')).accountSasToken)]",
                                "retentionInDays": 7
                            }
                        },
                        "detailedErrorMessages": {
                            "enabled": true
                        }
                    }
                }
            ]
        }

Bot Framework Virtual Assistant 是一个解决方案加速器,它将常用功能、服务和 Bot Framework 最佳实践整合到一个易于部署的包中,然后可以根据客户的需求进行定制。虚拟助手基于 Bot Framework SDK 构建,并部署在开发人员的 Azure Bot Service 订阅中,使助手生成的所有数据(提出的问题、用户行为等)完全由客户控制。

虚拟助手的主要组件包括:

Visual Studio 包含代码、对话和语言生成资产的项目

ARM 和 PowerShell 中的可自定义部署脚本

依赖服务(LUIS、QnA、存储、计算等)的自动供应和配置

已知场景的可插入技能,例如对话式使用 Microsoft Graph 和 Bing 数据资产