From 3a6866526478f089faf21bd60d50ac14846ffb60 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Wed, 12 Aug 2026 21:29:43 +0200 Subject: [PATCH] Group provider settings tables by LLM provider --- .../Settings/SettingsPanelEmbeddings.razor | 15 ++++++++------- .../Settings/SettingsPanelEmbeddings.razor.cs | 11 +++++++++++ .../Settings/SettingsPanelProviders.razor | 15 ++++++++------- .../Settings/SettingsPanelProviders.razor.cs | 12 ++++++++++++ .../Settings/SettingsPanelTranscription.razor | 15 ++++++++------- .../Settings/SettingsPanelTranscription.razor.cs | 12 ++++++++++++ 6 files changed, 59 insertions(+), 21 deletions(-) diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor b/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor index c162e540..8cae7348 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor @@ -17,25 +17,26 @@ @T("This helps AI Studio understand and compare things in a way that's similar to how humans do. When you're working on something, AI Studio can automatically identify related documents and data by comparing their digital fingerprints. For instance, if you're writing about customer service, AI Studio can instantly find other documents in your data that discuss similar topics or experiences, even if they use different words.") - + - - - # @T("Name") - @T("Provider") @T("Model") @T("Actions") + + + + @context.Key + + + - @context.Num @context.Name - @context.UsedLLMProvider.ToName() @this.GetEmbeddingProviderModelName(context) diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs index a42548be..af021f63 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelEmbeddings.razor.cs @@ -11,6 +11,17 @@ namespace AIStudio.Components.Settings; public partial class SettingsPanelEmbeddings : SettingsPanelProviderBase { + /// + /// Groups the table by the used LLM provider. The embedding provider list is already sorted by + /// that provider, so all instances of one LLM provider form a single, coherent group. + /// + private static readonly TableGroupDefinition GROUP_CONFIG = new() + { + Expandable = true, + IsInitiallyExpanded = true, + Selector = provider => provider.UsedLLMProvider.ToName(), + }; + [Parameter] public List> AvailableEmbeddingProviders { get; set; } = new(); diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor index 92030f3f..a359605e 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor @@ -9,25 +9,26 @@ @T("What we call a provider is the combination of an LLM provider such as OpenAI and a model like GPT-4o. You can configure as many providers as you want. This way, you can use the appropriate model for each task. As an LLM provider, you can also choose local providers. However, to use this app, you must configure at least one provider.") - + - - - # @T("Instance Name") - @T("Provider") @T("Model") @T("Actions") + + + + @context.Key + + + - @context.Num @context.InstanceName - @context.UsedLLMProvider.ToName() @this.GetLLMProviderModelName(context) diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs index 9e073563..95f228b0 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelProviders.razor.cs @@ -1,6 +1,7 @@ using System.Diagnostics.CodeAnalysis; using AIStudio.Dialogs; +using AIStudio.Provider; using AIStudio.Settings; using Microsoft.AspNetCore.Components; @@ -11,6 +12,17 @@ namespace AIStudio.Components.Settings; public partial class SettingsPanelProviders : SettingsPanelProviderBase { + /// + /// Groups the table by the used LLM provider. The provider list is already sorted by that + /// provider, so all instances of one LLM provider form a single, coherent group. + /// + private static readonly TableGroupDefinition GROUP_CONFIG = new() + { + Expandable = true, + IsInitiallyExpanded = true, + Selector = provider => provider.UsedLLMProvider.ToName(), + }; + [Parameter] public List> AvailableLLMProviders { get; set; } = new(); diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor b/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor index a558d0ca..cb22b969 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor @@ -13,25 +13,26 @@ @T("With the support of transcription models, MindWork AI Studio can convert human speech into text. This is useful, for example, when you need to dictate text. You can choose from dedicated transcription models, but not multimodal LLMs (large language models) that can handle both speech and text. The configuration of multimodal models is done in the 'Configure providers' section.") - + - - - # @T("Name") - @T("Provider") @T("Model") @T("Actions") + + + + @context.Key + + + - @context.Num @context.Name - @context.UsedLLMProvider.ToName() @this.GetTranscriptionProviderModelName(context) diff --git a/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor.cs b/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor.cs index 60d60e3e..1359c1fb 100644 --- a/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor.cs +++ b/app/MindWork AI Studio/Components/Settings/SettingsPanelTranscription.razor.cs @@ -1,4 +1,5 @@ using AIStudio.Dialogs; +using AIStudio.Provider; using AIStudio.Settings; using Microsoft.AspNetCore.Components; @@ -9,6 +10,17 @@ namespace AIStudio.Components.Settings; public partial class SettingsPanelTranscription : SettingsPanelProviderBase { + /// + /// Groups the table by the used LLM provider. The transcription provider list is already sorted by + /// that provider, so all instances of one LLM provider form a single, coherent group. + /// + private static readonly TableGroupDefinition GROUP_CONFIG = new() + { + Expandable = true, + IsInitiallyExpanded = true, + Selector = provider => provider.UsedLLMProvider.ToName(), + }; + [Parameter] public List> AvailableTranscriptionProviders { get; set; } = new();