mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 13:00:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			140 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
@using AIStudio.Provider
 | 
						|
@using AIStudio.Provider.SelfHosted
 | 
						|
@inherits MSGComponentBase
 | 
						|
 | 
						|
<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="@T("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() || provider is LLMProviders.NONE)
 | 
						|
                        {
 | 
						|
                            <MudSelectItem Value="@provider">
 | 
						|
                                @provider.ToName()
 | 
						|
                            </MudSelectItem>
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                </MudSelect>
 | 
						|
                <MudButton Disabled="@(!this.DataLLMProvider.ShowRegisterButton())" Variant="Variant.Filled" Size="Size.Small" StartIcon="@Icons.Material.Filled.OpenInBrowser" Href="@this.DataLLMProvider.GetCreationURL()" Target="_blank">
 | 
						|
                    @T("Create account")
 | 
						|
                </MudButton>
 | 
						|
            </MudStack>
 | 
						|
            
 | 
						|
            @if (this.DataLLMProvider.IsAPIKeyNeeded(this.DataHost))
 | 
						|
            {
 | 
						|
                <SecretInputField @bind-Secret="@this.dataAPIKey" Label="@this.APIKeyText" Validation="@this.providerValidation.ValidatingAPIKey"/>
 | 
						|
            }
 | 
						|
 | 
						|
            @if (this.DataLLMProvider.IsHostnameNeeded())
 | 
						|
            {
 | 
						|
                <MudTextField
 | 
						|
                    T="string"
 | 
						|
                    @bind-Text="@this.DataHostname"
 | 
						|
                    Label="@T("Hostname")"
 | 
						|
                    Class="mb-3"
 | 
						|
                    Adornment="Adornment.Start"
 | 
						|
                    AdornmentIcon="@Icons.Material.Filled.Dns"
 | 
						|
                    AdornmentColor="Color.Info"
 | 
						|
                    Validation="@this.providerValidation.ValidatingHostname"
 | 
						|
                    UserAttributes="@SPELLCHECK_ATTRIBUTES"/>
 | 
						|
            }
 | 
						|
 | 
						|
            @if (this.DataLLMProvider.IsHostNeeded())
 | 
						|
            {
 | 
						|
                <MudSelect @bind-Value="@this.DataHost" Label="@T("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>
 | 
						|
            }
 | 
						|
 | 
						|
            <MudField FullWidth="true" Label="@T("Model selection")" Variant="Variant.Outlined" Class="mb-3">
 | 
						|
                <MudStack Row="@true" AlignItems="AlignItems.Center" StretchItems="StretchItems.End">
 | 
						|
                    @if (this.DataLLMProvider.IsEmbeddingModelProvidedManually(this.DataHost))
 | 
						|
                    {
 | 
						|
                        <MudTextField
 | 
						|
                            T="string"
 | 
						|
                            @bind-Text="@this.dataManuallyModel"
 | 
						|
                            Label="@T("Model")"
 | 
						|
                            Class="mb-3"
 | 
						|
                            Adornment="Adornment.Start"
 | 
						|
                            AdornmentIcon="@Icons.Material.Filled.Dns"
 | 
						|
                            AdornmentColor="Color.Info"
 | 
						|
                            Validation="@this.ValidateManuallyModel"
 | 
						|
                            UserAttributes="@SPELLCHECK_ATTRIBUTES"
 | 
						|
                            HelperText="@T("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">
 | 
						|
                            @T("Load")
 | 
						|
                        </MudButton>
 | 
						|
                        @if(this.availableModels.Count is 0)
 | 
						|
                        {
 | 
						|
                            <MudText Typo="Typo.body1">
 | 
						|
                                @T("No models loaded or available.")
 | 
						|
                            </MudText>
 | 
						|
                        }
 | 
						|
                        else
 | 
						|
                        {
 | 
						|
                            <MudSelect Disabled="@this.IsNoneProvider" @bind-Value="@this.DataModel" Label="@T("Model")"
 | 
						|
                                       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>
 | 
						|
            </MudField>
 | 
						|
 | 
						|
            @* ReSharper disable once CSharpWarnings::CS8974 *@
 | 
						|
            <MudTextField
 | 
						|
                T="string"
 | 
						|
                @bind-Text="@this.DataName"
 | 
						|
                Label="@T("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">
 | 
						|
            @T("Cancel")
 | 
						|
        </MudButton>
 | 
						|
        <MudButton OnClick="@this.Store" Variant="Variant.Filled" Color="Color.Primary">
 | 
						|
            @if(this.IsEditing)
 | 
						|
            {
 | 
						|
                @T("Update")
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                @T("Add")
 | 
						|
            }
 | 
						|
        </MudButton>
 | 
						|
    </DialogActions>
 | 
						|
</MudDialog> |