Improved provider dialogs (#407)
Some checks are pending
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-unknown-linux-gnu, linux-x64, ubuntu-22.04, x86_64-unknown-linux-gnu, appimage deb updater) (push) Blocked by required conditions
Build and Release / Prepare & create release (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-apple-darwin, osx-x64, macos-latest, x86_64-apple-darwin, dmg updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-x86_64-pc-windows-msvc.exe, win-x64, windows-latest, x86_64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
Build and Release / Read metadata (push) Waiting to run
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-apple-darwin, osx-arm64, macos-latest, aarch64-apple-darwin, dmg updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-pc-windows-msvc.exe, win-arm64, windows-latest, aarch64-pc-windows-msvc, nsis updater) (push) Blocked by required conditions
Build and Release / Build app (${{ matrix.dotnet_runtime }}) (-aarch64-unknown-linux-gnu, linux-arm64, ubuntu-22.04-arm, aarch64-unknown-linux-gnu, deb) (push) Blocked by required conditions
Build and Release / Publish release (push) Blocked by required conditions

This commit is contained in:
Thorsten Sommer 2025-04-20 12:42:42 +02:00 committed by GitHub
parent c6e45c26d6
commit f8c60d87ae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 66 additions and 52 deletions

View File

@ -41,7 +41,7 @@
<RowTemplate> <RowTemplate>
<MudTd>@context.Num</MudTd> <MudTd>@context.Num</MudTd>
<MudTd>@context.Name</MudTd> <MudTd>@context.Name</MudTd>
<MudTd>@context.UsedLLMProvider</MudTd> <MudTd>@context.UsedLLMProvider.ToName()</MudTd>
<MudTd>@this.GetEmbeddingProviderModelName(context)</MudTd> <MudTd>@this.GetEmbeddingProviderModelName(context)</MudTd>
<MudTd> <MudTd>

View File

@ -11,49 +11,58 @@
{ {
if (provider.ProvideEmbeddings()) if (provider.ProvideEmbeddings())
{ {
<MudSelectItem Value="@provider">@provider</MudSelectItem> <MudSelectItem Value="@provider">
@provider.ToName()
</MudSelectItem>
} }
} }
</MudSelect> </MudSelect>
<MudButton Disabled="@(!this.DataLLMProvider.ShowRegisterButton())" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.OpenInBrowser" Href="@this.DataLLMProvider.GetCreationURL()" Target="_blank">Create account</MudButton> <MudButton Disabled="@(!this.DataLLMProvider.ShowRegisterButton())" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.OpenInBrowser" Href="@this.DataLLMProvider.GetCreationURL()" Target="_blank">Create account</MudButton>
</MudStack> </MudStack>
@if (this.DataLLMProvider.IsAPIKeyNeeded(this.DataHost))
{
@* ReSharper disable once CSharpWarnings::CS8974 *@ @* ReSharper disable once CSharpWarnings::CS8974 *@
<MudTextField <MudTextField
T="string" T="string"
@bind-Text="@this.dataAPIKey" @bind-Text="@this.dataAPIKey"
Label="@this.APIKeyText" Label="@this.APIKeyText"
Disabled="@(!this.DataLLMProvider.IsAPIKeyNeeded(this.DataHost))"
Class="mb-3" Class="mb-3"
Adornment="Adornment.Start" Adornment="Adornment.Start"
AdornmentIcon="@Icons.Material.Filled.VpnKey" AdornmentIcon="@Icons.Material.Filled.VpnKey"
AdornmentColor="Color.Info" AdornmentColor="Color.Info"
InputType="InputType.Password" InputType="InputType.Password"
Validation="@this.providerValidation.ValidatingAPIKey" Validation="@this.providerValidation.ValidatingAPIKey"/>
/> }
@if (this.DataLLMProvider.IsHostnameNeeded())
{
<MudTextField <MudTextField
T="string" T="string"
@bind-Text="@this.DataHostname" @bind-Text="@this.DataHostname"
Label="Hostname" Label="Hostname"
Disabled="@(!this.DataLLMProvider.IsHostnameNeeded())"
Class="mb-3" Class="mb-3"
Adornment="Adornment.Start" Adornment="Adornment.Start"
AdornmentIcon="@Icons.Material.Filled.Dns" AdornmentIcon="@Icons.Material.Filled.Dns"
AdornmentColor="Color.Info" AdornmentColor="Color.Info"
Validation="@this.providerValidation.ValidatingHostname" Validation="@this.providerValidation.ValidatingHostname"
UserAttributes="@SPELLCHECK_ATTRIBUTES" UserAttributes="@SPELLCHECK_ATTRIBUTES"/>
/> }
<MudSelect Disabled="@(!this.DataLLMProvider.IsHostNeeded())" @bind-Value="@this.DataHost" Label="Host" Class="mb-3" OpenIcon="@Icons.Material.Filled.ExpandMore" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.providerValidation.ValidatingHost"> @if (this.DataLLMProvider.IsHostNeeded())
{
<MudSelect @bind-Value="@this.DataHost" Label="Host" Class="mb-3" OpenIcon="@Icons.Material.Filled.ExpandMore" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.providerValidation.ValidatingHost">
@foreach (Host host in Enum.GetValues(typeof(Host))) @foreach (Host host in Enum.GetValues(typeof(Host)))
{ {
if (host.AreEmbeddingsSupported()) if (host.AreEmbeddingsSupported())
{ {
<MudSelectItem Value="@host">@host.Name()</MudSelectItem> <MudSelectItem Value="@host">
@host.Name()
</MudSelectItem>
} }
} }
</MudSelect> </MudSelect>
}
<MudStack Row="@true" AlignItems="AlignItems.Center"> <MudStack Row="@true" AlignItems="AlignItems.Center">
@if (this.DataLLMProvider.IsEmbeddingModelProvidedManually(this.DataHost)) @if (this.DataLLMProvider.IsEmbeddingModelProvidedManually(this.DataHost))

View File

@ -10,25 +10,28 @@
<MudSelect @bind-Value="@this.DataLLMProvider" Label="Provider" Class="mb-3" OpenIcon="@Icons.Material.Filled.AccountBalance" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.providerValidation.ValidatingProvider"> <MudSelect @bind-Value="@this.DataLLMProvider" Label="Provider" Class="mb-3" OpenIcon="@Icons.Material.Filled.AccountBalance" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.providerValidation.ValidatingProvider">
@foreach (LLMProviders provider in Enum.GetValues(typeof(LLMProviders))) @foreach (LLMProviders provider in Enum.GetValues(typeof(LLMProviders)))
{ {
<MudSelectItem Value="@provider">@provider.ToName()</MudSelectItem> <MudSelectItem Value="@provider">
@provider.ToName()
</MudSelectItem>
} }
</MudSelect> </MudSelect>
<MudButton Disabled="@(!this.DataLLMProvider.ShowRegisterButton())" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.OpenInBrowser" Href="@this.DataLLMProvider.GetCreationURL()" Target="_blank">Create account</MudButton> <MudButton Disabled="@(!this.DataLLMProvider.ShowRegisterButton())" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.OpenInBrowser" Href="@this.DataLLMProvider.GetCreationURL()" Target="_blank">Create account</MudButton>
</MudStack> </MudStack>
@if (this.DataLLMProvider.IsAPIKeyNeeded(this.DataHost))
{
@* ReSharper disable once CSharpWarnings::CS8974 *@ @* ReSharper disable once CSharpWarnings::CS8974 *@
<MudTextField <MudTextField
T="string" T="string"
@bind-Text="@this.dataAPIKey" @bind-Text="@this.dataAPIKey"
Label="@this.APIKeyText" Label="@this.APIKeyText"
Disabled="@(!this.DataLLMProvider.IsAPIKeyNeeded(this.DataHost))"
Class="mb-3" Class="mb-3"
Adornment="Adornment.Start" Adornment="Adornment.Start"
AdornmentIcon="@Icons.Material.Filled.VpnKey" AdornmentIcon="@Icons.Material.Filled.VpnKey"
AdornmentColor="Color.Info" AdornmentColor="Color.Info"
InputType="InputType.Password" InputType="InputType.Password"
Validation="@this.providerValidation.ValidatingAPIKey" Validation="@this.providerValidation.ValidatingAPIKey"/>
/> }
@if (this.DataLLMProvider.IsHostnameNeeded()) @if (this.DataLLMProvider.IsHostnameNeeded())
{ {
@ -36,7 +39,6 @@
T="string" T="string"
@bind-Text="@this.DataHostname" @bind-Text="@this.DataHostname"
Label="Hostname" Label="Hostname"
Disabled="@(!this.DataLLMProvider.IsHostnameNeeded())"
Class="mb-3" Class="mb-3"
Adornment="Adornment.Start" Adornment="Adornment.Start"
AdornmentIcon="@Icons.Material.Filled.Dns" AdornmentIcon="@Icons.Material.Filled.Dns"
@ -47,10 +49,12 @@
@if (this.DataLLMProvider.IsHostNeeded()) @if (this.DataLLMProvider.IsHostNeeded())
{ {
<MudSelect Disabled="@(!this.DataLLMProvider.IsHostNeeded())" @bind-Value="@this.DataHost" Label="Host" Class="mb-3" OpenIcon="@Icons.Material.Filled.ExpandMore" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.providerValidation.ValidatingHost"> <MudSelect @bind-Value="@this.DataHost" Label="Host" Class="mb-3" OpenIcon="@Icons.Material.Filled.ExpandMore" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.providerValidation.ValidatingHost">
@foreach (Host host in Enum.GetValues(typeof(Host))) @foreach (Host host in Enum.GetValues(typeof(Host)))
{ {
<MudSelectItem Value="@host">@host.Name()</MudSelectItem> <MudSelectItem Value="@host">
@host.Name()
</MudSelectItem>
} }
</MudSelect> </MudSelect>
} }

View File

@ -2,6 +2,7 @@
- Added support for the announced OpenAI `o4` models. - Added support for the announced OpenAI `o4` models.
- Added Alibaba Cloud as a new provider. Thanks Peer `peerschuett` for the contribution. - Added Alibaba Cloud as a new provider. Thanks Peer `peerschuett` for the contribution.
- Added the Hugging Face inference provider as an LLM provider to AI Studio. Thanks Peer `peerschuett` for the contribution. - Added the Hugging Face inference provider as an LLM provider to AI Studio. Thanks Peer `peerschuett` for the contribution.
- Improved the LLM & embedding provider dialogs by hiding not relevant options.
- Improved the provider selection by showing the name of the provider in the provider selection instead of its identifier. - Improved the provider selection by showing the name of the provider in the provider selection instead of its identifier.
- Improved the developer experience by adding a tolerant enum converter for better configuration handling. - Improved the developer experience by adding a tolerant enum converter for better configuration handling.
- Fixed an issue where OpenAI `o3` models were not shown in the model selection. - Fixed an issue where OpenAI `o3` models were not shown in the model selection.