【问题标题】:Passing model and subscription key to a LuisDialog other than via an attribute将模型和订阅密钥传递给 LuisDialog,而不是通过属性
【发布时间】:2016-08-31 08:06:33
【问题描述】:

我正在编写一个可以说两种语言的机器人。因此,我需要使用两个单独的 LUIS 应用程序(每种语言一个)。

Bot Framework 中的 LuisDialog 是这样初始化的(来自 Microsoft 的示例):

[LuisModel("c413b2ef-382c-45bd-8ff0-f76d60e2a821", "6d0966209c6e4f6b835ce34492f3e6d9")]
[Serializable]
public class SimpleAlarmDialog : LuisDialog<object>
{

但是,我需要根据我确定的用户语言使用动态应用 ID 和订阅密钥。

两个 LUIS 应用中的所有方法、意图等都是相同的。

C# 中的属性不能是动态的。

还有什么方法可以将应用程序和订阅密钥动态传递给 LuisDialog 而不是硬编码?

【问题讨论】:

    标签: c# botframework azure-language-understanding


    【解决方案1】:

    您必须在 Autofac 容器中注册您的 LuisModelAttribute。您可以查看 here 在 BotBuilder 存储库中的 AlarmBot 示例中是如何完成的

    【讨论】:

      【解决方案2】:

      我通过稍微改变方法解决了这个问题。您实际上可以使用两个或多个 LuisModel 属性来装饰该类,并且机器人框架将同时查询所有这些属性。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多