gpt4 book ai didi

c# - 配置中的多个 LUIS 模型

转载 作者:行者123 更新时间:2023-11-30 17:33:05 28 4
gpt4 key购买 nike

我通过属性在 1 个 LUIS 对话框中使用 2 个 LUIS 模型

[LuisModel("model1", "")]    
[LuisModel("model2", "")]
[Serializable]
public class LuisDialog

我需要从配置文件中获取这些模型。在 Autofac 中我只能注册 1

builder.Register(c => new LuisModelAttribute("model1", ""))...

如何从一个配置中设置多个 Luis 模型?

最佳答案

我认为这不会起作用,因为 LuisModel 被注入(inject)到您正在注册的 LuisService 中(这可能是您配置中的下一行)并且LuisService 只需要一个模型,而不是它们的数组。

我认为这可行的方法是,与其将模型注册到 Autofac 容器,不如注册多个 LuisService 来定义每个模型的构造函数的模型参数(参见 this )。

这样,当您解析基于LuisDialog 的对话框时,它将注入(inject)多个ILuisService(请参阅this),因为它已准备好接收一系列服务。

我没试过这个,但你可以看看这样的方法是否有效:

var model1 = new LuisModelAttribute("model1", "");
var model2 = new LuisModelAttribute("model2", "");

builder.RegisterType<LuisService>()
.WithParameter("model", model1)
.Keyed<ILuisService>(FiberModule.Key_DoNotSerialize)
.AsImplementedInterfaces()
.SingleInstance(); or // .InstancePerLifetimeScope()

builder.RegisterType<LuisService>()
.WithParameter("model", model2)
.Keyed<ILuisService>(FiberModule.Key_DoNotSerialize)
.AsImplementedInterfaces()
.SingleInstance(); or // .InstancePerLifetimeScope()

或者,您可以使用 RegisterInstance 并使用它们的特定模型注册 LuisService 的实例。

关于c# - 配置中的多个 LUIS 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771128/

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