@using AIStudio.Provider @using AIStudio.Provider.SelfHosted <MudDialog> <DialogContent> <MudForm @ref="@this.form" @bind-IsValid="@this.dataIsValid" @bind-Errors="@this.dataIssues"> <MudStack Row="@true" AlignItems="AlignItems.Center"> @* ReSharper disable once CSharpWarnings::CS8974 *@ <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))) { if (provider.ProvideEmbeddings()) { <MudSelectItem Value="@provider">@provider</MudSelectItem> } } </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> </MudStack> @* ReSharper disable once CSharpWarnings::CS8974 *@ <MudTextField T="string" @bind-Text="@this.dataAPIKey" Label="@this.APIKeyText" Disabled="@(!this.DataLLMProvider.IsAPIKeyNeeded(this.DataHost))" Class="mb-3" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.VpnKey" AdornmentColor="Color.Info" InputType="InputType.Password" Validation="@this.providerValidation.ValidatingAPIKey" /> <MudTextField T="string" @bind-Text="@this.DataHostname" Label="Hostname" Disabled="@(!this.DataLLMProvider.IsHostnameNeeded())" Class="mb-3" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.Dns" AdornmentColor="Color.Info" Validation="@this.providerValidation.ValidatingHostname" 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"> @foreach (Host host in Enum.GetValues(typeof(Host))) { if (host.AreEmbeddingsSupported()) { <MudSelectItem Value="@host">@host.Name()</MudSelectItem> } } </MudSelect> <MudStack Row="@true" AlignItems="AlignItems.Center"> @if (this.DataLLMProvider.IsEmbeddingModelProvidedManually(this.DataHost)) { <MudTextField T="string" @bind-Text="@this.dataManuallyModel" Label="Model" Class="mb-3" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.Dns" AdornmentColor="Color.Info" Validation="@this.ValidateManuallyModel" UserAttributes="@SPELLCHECK_ATTRIBUTES" HelperText="Currently, we cannot query the embedding models of self-hosted systems. Therefore, enter the model name manually." /> } else { <MudButton Disabled="@(!this.DataLLMProvider.CanLoadModels(this.DataHost, this.dataAPIKey))" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.Refresh" OnClick="this.ReloadModels">Load</MudButton> <MudSelect Disabled="@this.IsNoneProvider" @bind-Value="@this.DataModel" Label="Model" Class="mb-3" OpenIcon="@Icons.Material.Filled.FaceRetouchingNatural" AdornmentColor="Color.Info" Adornment="Adornment.Start" Validation="@this.providerValidation.ValidatingModel"> @foreach (var model in this.availableModels) { <MudSelectItem Value="@model">@model</MudSelectItem> } </MudSelect> } </MudStack> @* ReSharper disable once CSharpWarnings::CS8974 *@ <MudTextField T="string" @bind-Text="@this.DataName" Label="Instance Name" Class="mb-3" MaxLength="40" Counter="40" Immediate="@true" Adornment="Adornment.Start" AdornmentIcon="@Icons.Material.Filled.Lightbulb" AdornmentColor="Color.Info" Validation="@this.providerValidation.ValidatingInstanceName" UserAttributes="@SPELLCHECK_ATTRIBUTES" /> </MudForm> <Issues IssuesData="@this.dataIssues"/> </DialogContent> <DialogActions> <MudButton OnClick="@this.Cancel" Variant="Variant.Filled">Cancel</MudButton> <MudButton OnClick="@this.Store" Variant="Variant.Filled" Color="Color.Primary"> @if(this.IsEditing) { @:Update } else { @:Add } </MudButton> </DialogActions> </MudDialog>