gpt4 book ai didi

asp.net-web-api - Bot Framework 中的自动化部署(Bot + LUIS+ QnA + Table Storage)

转载 作者:行者123 更新时间:2023-12-04 21:07:00 25 4
gpt4 key购买 nike

我们在 Azure 上部署了一个机器人,但我们想将其提供给客户,以便他可以使用自己的资源部署它并运行它。我们需要给他们一个 Powershell 脚本,它神奇地创建和部署机器人工作所需的所有资源。我的机器人架构由以下部分组成:

  • Bot 的逻辑(ASP.NET Web API 项目部署在 Azure 应用服务 上)
  • LUIS 模型(通过 认知服务帐户 发布)
  • 使用 QnA Maker 完成的 QnA 服务知识库( 直接从 QnaMaker 门户发布(不知道它部署在哪里)
  • Azure 表存储

  • 我的问题是:

    1)如何将bots web api配置为连接字符串参数? (表存储,luis和qna服务重新部署时会有所不同)目前我正在定义conn。 web.config 上的字符串和 api 键,但正如我所说,这需要是动态的。

    2)如何自动部署LUIS? Luis 需要首先创建认知服务帐户的 key 。我假设我有导出的模型 json 文件。我正在考虑使用 LUIS API 来进行应用程序导出和发布部分。这样就够了吗?

    3)如何部署qna服务?我认为目前被神奇地部署在某个地方,所以也许我不需要对它做任何事情。

    谢谢!

    最佳答案

    也许有点晚了,但我只需要实现同样的事情,所以这里是您问题的答案,希望它们对其他人有用:

    1) 正如上面提到的 JoyrexJ9,您可以通过 ARM 模板通过设置应用服务的应用程序设置来完成此操作,这将覆盖 Web.config 中的值。更多关于这个 here

  • ARM模板中存储账户的连接字符串可以这样组合设置:


  • {
    "type": "Microsoft.Web/sites",
    "kind": "app",
    "name": "MyWebApp",
    "apiVersion": "2015-08-01",
    "location": "westeurope",
    "properties": {
    "name": "MyWebApp",
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', 'MyAppServicePlanName')]",
    "siteConfig": {
    "appSettings": [{
    "name": "StorageConnectionString",
    "value": "[concat('DefaultEndpointsProtocol=https;AccountName=','MyStorageAccountName',';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', 'MyStorageAccountName'), '2017-10-01').keys[0].value,';EndpointSuffix=core.windows.net')]"
    }],
    "cors": {
    "allowedOrigins": [
    "*"
    ]
    }
    }
    },
    "dependsOn": [
    "[resourceId('Microsoft.Storage/storageAccounts/', 'MyStorageAccountName')]",
    "[resourceId('Microsoft.Web/serverfarms', 'MyAppServicePlanName')]"
    ]
    }


  • 对于 LUIS 和 QnA 制造商,您需要手动从各自的门户获取值,并在 ARM 部署后手动更新应用程序设置,或者使用手动获取的值作为参数传递给它来重新运行 ARM 部署。后者有效,因为第一次您可以将这些值保留在 ARM 模板中为空,当您第二次部署它并使用适当的参数值时,ARM 将简单地更新这些应用程序设置值。有关此主题的更多信息 here
    (提示:如果您通过它们的 API 以编程方式提供 QnA Maker 和 LUIS 应用程序,那么您只需要手动获取 LUIS 的订阅 key ,因为您将从 QnA Maker 的 API 获取知识库的凭据。)

  • 2) 不幸的是,您目前无法完全自动配置 LUIS 应用程序。您可以通过 ARM 模板在 Azure 中创建资源,并且可以通过 LUIS API 完成大部分其余工作,但例如,您不能以编程方式将 ARM 模板创建的订阅 key 分配给 LUIS 应用程序,因为 that API method is deprecated .

    3) QnA Maker 服务及其托管模式在您提交问题后发生了重大变化。我写了一个完整的 blog post 关于如何在新系统中配置它。

    正如上面提到的 JoyrexJ9,需要指出的是,即使使用脚本,您也无法完全自动化机器人注册,因为没有用于在 https://apps.dev.microsoft.com/ 处注册应用程序的 API。您也必须手动执行此操作。其他所有内容(除了我上面提到的内容)都可以通过 ARM 模板或脚本完全自动化。

    关于asp.net-web-api - Bot Framework 中的自动化部署(Bot + LUIS+ QnA + Table Storage),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43191957/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com