Refactor ExpertProviderApiParameters to use init-only property in base provider

This commit is contained in:
Thorsten Sommer 2025-11-13 15:53:30 +01:00
parent 54d68c1d50
commit 8551ba3ee5
Signed by: tsommer
GPG Key ID: 371BBA77A02C0108
16 changed files with 4 additions and 45 deletions

View File

@ -21,9 +21,6 @@ public sealed class ProviderAlibabaCloud() : BaseProvider("https://dashscope-int
/// <inheritdoc />
public override string InstanceName { get; set; } = "AlibabaCloud";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)
{

View File

@ -18,9 +18,6 @@ public sealed class ProviderAnthropic() : BaseProvider("https://api.anthropic.co
public override string Id => LLMProviders.ANTHROPIC.ToName();
public override string InstanceName { get; set; } = "Anthropic";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)

View File

@ -66,7 +66,7 @@ public abstract class BaseProvider : IProvider, ISecretId
public abstract string InstanceName { get; set; }
/// <inheritdoc />
public abstract string ExpertProviderApiParameters { get; set; }
public string ExpertProviderApiParameters { get; init; } = string.Empty;
/// <inheritdoc />
public abstract IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, CancellationToken token = default);

View File

@ -21,9 +21,6 @@ public sealed class ProviderDeepSeek() : BaseProvider("https://api.deepseek.com/
/// <inheritdoc />
public override string InstanceName { get; set; } = "DeepSeek";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)
{

View File

@ -20,9 +20,6 @@ public class ProviderFireworks() : BaseProvider("https://api.fireworks.ai/infere
/// <inheritdoc />
public override string InstanceName { get; set; } = "Fireworks.ai";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)

View File

@ -21,9 +21,6 @@ public sealed class ProviderGWDG() : BaseProvider("https://chat-ai.academiccloud
/// <inheritdoc />
public override string InstanceName { get; set; } = "GWDG SAIA";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)
{

View File

@ -20,9 +20,6 @@ public class ProviderGoogle() : BaseProvider("https://generativelanguage.googlea
/// <inheritdoc />
public override string InstanceName { get; set; } = "Google Gemini";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)

View File

@ -20,9 +20,6 @@ public class ProviderGroq() : BaseProvider("https://api.groq.com/openai/v1/", LO
/// <inheritdoc />
public override string InstanceName { get; set; } = "Groq";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)

View File

@ -21,9 +21,6 @@ public sealed class ProviderHelmholtz() : BaseProvider("https://api.helmholtz-bl
/// <inheritdoc />
public override string InstanceName { get; set; } = "Helmholtz Blablador";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)
{

View File

@ -25,9 +25,6 @@ public sealed class ProviderHuggingFace : BaseProvider
/// <inheritdoc />
public override string InstanceName { get; set; } = "HuggingFace";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)

View File

@ -19,6 +19,9 @@ public interface IProvider
/// </summary>
public string InstanceName { get; }
/// <summary>
/// The additional API parameters.
/// </summary>
public string ExpertProviderApiParameters { get; }
/// <summary>

View File

@ -18,9 +18,6 @@ public sealed class ProviderMistral() : BaseProvider("https://api.mistral.ai/v1/
public override string Id => LLMProviders.MISTRAL.ToName();
public override string InstanceName { get; set; } = "Mistral";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)

View File

@ -22,10 +22,6 @@ public sealed class ProviderOpenAI() : BaseProvider("https://api.openai.com/v1/"
/// <inheritdoc />
public override string InstanceName { get; set; } = "OpenAI";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)

View File

@ -30,10 +30,6 @@ public sealed class ProviderPerplexity() : BaseProvider("https://api.perplexity.
/// <inheritdoc />
public override string InstanceName { get; set; } = "Perplexity";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)
{

View File

@ -19,9 +19,6 @@ public sealed class ProviderSelfHosted(Host host, string hostname) : BaseProvide
public override string InstanceName { get; set; } = "Self-hosted";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Provider.Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)
{

View File

@ -20,9 +20,6 @@ public sealed class ProviderX() : BaseProvider("https://api.x.ai/v1/", LOGGER)
/// <inheritdoc />
public override string InstanceName { get; set; } = "xAI";
/// <inheritdoc />
public override string ExpertProviderApiParameters { get; set; } = string.Empty;
/// <inheritdoc />
public override async IAsyncEnumerable<ContentStreamChunk> StreamChatCompletion(Model chatModel, ChatThread chatThread, SettingsManager settingsManager, [EnumeratorCancellation] CancellationToken token = default)