Browse Source

Refactor the client building code

pull/23533/head
Halil İbrahim Kalkan 1 year ago
parent
commit
f1daf02c5a
  1. 2
      framework/src/Volo.Abp.AI/Volo/Abp/AI/BuilderConfigurerList.cs
  2. 14
      framework/src/Volo.Abp.AI/Volo/Abp/AI/ChatClientConfiguration.cs
  3. 5
      framework/src/Volo.Abp.AI/Volo/Abp/AI/ChatClientConfigurationCollection.cs
  4. 2
      framework/src/Volo.Abp.AI/Volo/Abp/AI/NamedAction.cs
  5. 14
      framework/src/Volo.Abp.AI/Volo/Abp/AI/NamedActionList.cs
  6. 5
      framework/src/Volo.Abp.AI/Volo/Abp/AI/NamedObjectList.cs

2
framework/src/Volo.Abp.AI/Volo/Abp/AI/BuilderConfigurerList.cs

@ -2,7 +2,7 @@ using Microsoft.Extensions.AI;
namespace Volo.Abp.AI;
public class BuilderConfigurerList : NamedObjectList<NamedAction<ChatClientBuilder>>
public class BuilderConfigurerList : NamedActionList<ChatClientBuilder>
{
}

14
framework/src/Volo.Abp.AI/Volo/Abp/AI/ChatClientConfiguration.cs

@ -1,3 +1,4 @@
using System;
using Microsoft.Extensions.AI;
namespace Volo.Abp.AI;
@ -8,10 +9,21 @@ public class ChatClientConfiguration
public ChatClientBuilder? Builder { get; set; }
public BuilderConfigurerList BuilderConfigurers { get; } = new();
public BuilderConfigurerList BuilderConfigurers { get; }
public ChatClientConfiguration(string name)
{
Name = name;
BuilderConfigurers = new BuilderConfigurerList();
}
public void ConfigureBuilder(Action<ChatClientBuilder> configureAction)
{
BuilderConfigurers.Add(configureAction);
}
public void ConfigureBuilder(string name, Action<ChatClientBuilder> configureAction)
{
BuilderConfigurers.Add(name, configureAction);
}
}

5
framework/src/Volo.Abp.AI/Volo/Abp/AI/ChatClientConfigurationCollection.cs

@ -5,6 +5,9 @@ namespace Volo.Abp.AI;
public class ChatClientConfigurationDictionary : Dictionary<string, ChatClientConfiguration>
{
public void ConfigureDefault(Action<ChatClientConfiguration> configureAction) =>
Configure("Default", configureAction);
public void Configure(string name, Action<ChatClientConfiguration> configureAction)
{
if (!this.TryGetValue(name, out var configuration))
@ -15,4 +18,4 @@ public class ChatClientConfigurationDictionary : Dictionary<string, ChatClientCo
configureAction(configuration);
}
}
}

2
framework/src/Volo.Abp.AI/Volo/Abp/AI/NamedAction.cs

@ -2,7 +2,7 @@ using System;
namespace Volo.Abp.AI;
public class NamedAction<T> : NamedObject //TODO: Move to Core package?
public class NamedAction<T> : NamedObject
{
public Action<T> Action { get; set; }

14
framework/src/Volo.Abp.AI/Volo/Abp/AI/NamedActionList.cs

@ -0,0 +1,14 @@
using System;
namespace Volo.Abp.AI;
public class NamedActionList<T> : NamedObjectList<NamedAction<T>>
{
public void Add(Action<T> action)
{
this.Add(Guid.NewGuid().ToString("N"), action);
}
public void Add(string name, Action<T> action)
=> this.Add(new NamedAction<T>(name, action));
}

5
framework/src/Volo.Abp.AI/Volo/Abp/AI/NamedObjectList.cs

@ -5,8 +5,5 @@ namespace Volo.Abp.AI;
public class NamedObjectList<T> : List<T>
where T : NamedObject
{
public NamedObjectList()
{
}
}
Loading…
Cancel
Save