【问题标题】:How to merge 2 LUIS models?如何合并 2 个 LUIS 模型?
【发布时间】:2018-11-14 03:46:09
【问题描述】:

我有 2 个 LUIS 模型。一个用于非生产 Bot,另一个用于生产 Bot。作为日常开发和新技能的一部分,我对 LUIS 非产品应用程序进行了许多更改。现在,我们计划将这些技能部署到 prod bot,因此我们需要对 prod LUIS 进行相同的 LUIS 更改。

我当然可以通过复制 Intent 和实体、话语来使用非 prod 更新 prod LUIS 模型,但当然这很耗时且会出错。

我想知道合并 2 个 LUIS 模型的最佳方法和/或我可以使用的任何其他最佳做法。

【问题讨论】:

  • 导出您的非生产版本,并将其作为新的生产版本导入,然后发布此新版本

标签: nlp botframework bots azure-language-understanding cortana-skills-kit


【解决方案1】:

如果这两个模型位于不同的 LUIS 应用中,请使用 dispatcher 工具。它将它们组合成一个应用程序。如果这是单个应用程序中的两个模型(作为版本),则导出两个版本然后使用 Node.js 组合 JSON 对象会更容易。

【讨论】:

  • 有 2 个相同型号的 LUIS 应用程序,但唯一的区别是非产品模型具有新的意图和实体,我需要将其移植到产品模型。据我所知,如果 2 个应用程序来自不同的域,例如 LUI 调度程序会有所帮助:一个是应用程序,另一个是航班预订。
【解决方案2】:

正如 Nicols 所述,LUIS 可以选择将 LUIS 应用作为新版本导入到现有应用中。您可以从他们的doc 获取有关导入/导出版本的详细信息。

您可以将开发 LUIS 应用 json 文件作为新版本导入生产 LUIS 应用,并将新版本设置为活动版本。

【讨论】:

    【解决方案3】:

    只是一种解决方法,如果您赶时间 您可以简单地在 LuisDialog 中添加两个 luis 模型,它会自动选择得分最高的意图。

        [LuisModel("Model", "secret")]
        [LuisModel("Model", "secret")]
    public class RootDialog : LuisDialog<object>
        {
            [LuisIntent("None")]
            public async Task NoneRes(IDialogContext context, LuisResult result)
            {
            }
        }
    

    【讨论】:

      【解决方案4】:

      在您的情况下,最好的方案是克隆您的非生产环境,为其指定一个新版本名称,将新克隆的版本设置为活动版本,然后继续处理您的非生产环境。

      完整的文档可以在here找到

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多