Browse Source

Implement Workspace Configuration Classes and Typed Kernel Accessor

Added new classes: WorkspaceConfiguration, WorkspaceConfigurationDictionary, and TypedKernelAccessor. These classes facilitate workspace-specific configurations and provide a typed access mechanism for the kernel service. Removed the previous implementation of WorkspaceConfiguration and its dictionary to streamline the configuration process.
pull/23533/head
enisn 1 year ago
parent
commit
a0a6ed08b3
No known key found for this signature in database GPG Key ID: A052619F04155D1C
  1. 45
      framework/src/Volo.Abp.AI/Volo/Abp/AI/AbpAIOptions.cs
  2. 0
      framework/src/Volo.Abp.AI/Volo/Abp/AI/TypedKernelAccessor.cs
  3. 28
      framework/src/Volo.Abp.AI/Volo/Abp/AI/WorkspaceConfiguration.cs
  4. 24
      framework/src/Volo.Abp.AI/Volo/Abp/AI/WorkspaceConfigurationDictionary.cs

45
framework/src/Volo.Abp.AI/Volo/Abp/AI/AbpAIOptions.cs

@ -19,49 +19,4 @@ public class AbpAIOptions
{ {
return $"{KernelServiceKeyNamePrefix}{name}"; return $"{KernelServiceKeyNamePrefix}{name}";
} }
}
public class WorkspaceConfigurationDictionary : Dictionary<string, WorkspaceConfiguration>
{
public void Configure<TWorkSpace>(Action<WorkspaceConfiguration> configureAction)
where TWorkSpace : class
{
Configure(WorkspaceNameAttribute.GetWorkspaceName<TWorkSpace>(), configureAction);
}
public void Configure(string name, Action<WorkspaceConfiguration> configureAction)
{
if (!TryGetValue(name, out var configuration))
{
configuration = new WorkspaceConfiguration(name);
this[name] = configuration;
}
configureAction(configuration);
}
}
public class WorkspaceConfiguration
{
public string Name { get; }
public ChatClientConfiguration ChatClient { get; } = new();
public KernelConfiguration Kernel { get; } = new();
public WorkspaceConfiguration(string name)
{
Name = name;
}
public WorkspaceConfiguration ConfigureChatClient(Action<ChatClientConfiguration> configureAction)
{
configureAction(ChatClient);
return this;
}
public WorkspaceConfiguration ConfigureKernel(Action<KernelConfiguration> configureAction)
{
configureAction(Kernel);
return this;
}
} }

0
framework/src/Volo.Abp.AI/Volo/Abp/AI/TypedKernel.cs → framework/src/Volo.Abp.AI/Volo/Abp/AI/TypedKernelAccessor.cs

28
framework/src/Volo.Abp.AI/Volo/Abp/AI/WorkspaceConfiguration.cs

@ -0,0 +1,28 @@
using System;
namespace Volo.Abp.AI;
public class WorkspaceConfiguration
{
public string Name { get; }
public ChatClientConfiguration ChatClient { get; } = new();
public KernelConfiguration Kernel { get; } = new();
public WorkspaceConfiguration(string name)
{
Name = name;
}
public WorkspaceConfiguration ConfigureChatClient(Action<ChatClientConfiguration> configureAction)
{
configureAction(ChatClient);
return this;
}
public WorkspaceConfiguration ConfigureKernel(Action<KernelConfiguration> configureAction)
{
configureAction(Kernel);
return this;
}
}

24
framework/src/Volo.Abp.AI/Volo/Abp/AI/WorkspaceConfigurationDictionary.cs

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
namespace Volo.Abp.AI;
public class WorkspaceConfigurationDictionary : Dictionary<string, WorkspaceConfiguration>
{
public void Configure<TWorkSpace>(Action<WorkspaceConfiguration> configureAction)
where TWorkSpace : class
{
Configure(WorkspaceNameAttribute.GetWorkspaceName<TWorkSpace>(), configureAction);
}
public void Configure(string name, Action<WorkspaceConfiguration> configureAction)
{
if (!TryGetValue(name, out var configuration))
{
configuration = new WorkspaceConfiguration(name);
this[name] = configuration;
}
configureAction(configuration);
}
}
Loading…
Cancel
Save