mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-04-29 06:59:47 +00:00
148 lines
8.7 KiB
Plaintext
148 lines
8.7 KiB
Plaintext
@attribute [Route(Routes.ASSISTANT_ERI)]
|
||
@using MudExtensions
|
||
@inherits AssistantBaseCore
|
||
|
||
<MudText Typo="Typo.body1" Class="mb-3">
|
||
You can imagine it like this: Hypothetically, when Wikipedia implemented the ERI, it would vectorize
|
||
all pages using an embedding method. All of Wikipedia’s data would remain with Wikipedia, including the
|
||
vector database (decentralized approach). Then, any AI Studio user could add Wikipedia as a data source to
|
||
significantly reduce the hallucination of the LLM in knowledge questions.
|
||
</MudText>
|
||
|
||
<MudText Typo="Typo.body1">
|
||
<b>Related links:</b>
|
||
</MudText>
|
||
<MudList T="string" Class="mb-6">
|
||
<MudListItem T="string" Icon="@Icons.Material.Filled.Link" Target="_blank" Href="https://github.com/MindWorkAI/ERI">ERI repository with example implementation in .NET and C#</MudListItem>
|
||
<MudListItem T="string" Icon="@Icons.Material.Filled.Link" Target="_blank" Href="https://mindworkai.org/swagger-ui.html">Interactive documentation aka Swagger UI</MudListItem>
|
||
</MudList>
|
||
|
||
<PreviewPrototype/>
|
||
<div class="mb-6"></div>
|
||
|
||
<MudText Typo="Typo.h4" Class="mb-1">
|
||
Common ERI server settings
|
||
</MudText>
|
||
<MudTextField T="string" @bind-Text="@this.serverName" Validation="@this.ValidateServerName" Immediate="@true" Label="ERI server name" HelperText="Please give your ERI server a name that provides information about the data source and/or its intended purpose. The name will be displayed to users in AI Studio." Counter="60" MaxLength="60" Variant="Variant.Outlined" Margin="Margin.Normal" UserAttributes="@USER_INPUT_ATTRIBUTES" Class="mb-3"/>
|
||
<MudTextField T="string" @bind-Text="@this.serverDescription" Validation="@this.ValidateServerDescription" Immediate="@true" Label="ERI server description" HelperText="Please provide a brief description of your ERI server. Describe or explain what your ERI server does and what data it uses for this purpose. This description will be shown to users in AI Studio." Counter="512" MaxLength="512" Variant="Variant.Outlined" Margin="Margin.Normal" Lines="3" AutoGrow="@true" MaxLines="6" UserAttributes="@USER_INPUT_ATTRIBUTES" Class="mb-3"/>
|
||
|
||
<MudStack Row="@true" Class="mb-3">
|
||
<MudSelect T="ProgrammingLanguages" @bind-Value="@this.selectedProgrammingLanguage" AdornmentIcon="@Icons.Material.Filled.Code" Adornment="Adornment.Start" Label="Programming language" Variant="Variant.Outlined" Margin="Margin.Dense" Validation="@this.ValidateProgrammingLanguage">
|
||
@foreach (var language in Enum.GetValues<ProgrammingLanguages>())
|
||
{
|
||
<MudSelectItem Value="@language">@language.Name()</MudSelectItem>
|
||
}
|
||
</MudSelect>
|
||
@if (this.selectedProgrammingLanguage is ProgrammingLanguages.OTHER)
|
||
{
|
||
<MudTextField T="string" @bind-Text="@this.otherProgrammingLanguage" Validation="@this.ValidateOtherLanguage" Label="Other language" Variant="Variant.Outlined" Margin="Margin.Dense" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
|
||
}
|
||
</MudStack>
|
||
|
||
<MudStack Row="@true" AlignItems="AlignItems.Center" Class="mb-3">
|
||
<MudSelect T="ERIVersion" @bind-Value="@this.selectedERIVersion" Label="ERI specification version" Variant="Variant.Outlined" Margin="Margin.Dense" Validation="@this.ValidateERIVersion">
|
||
@foreach (var version in Enum.GetValues<ERIVersion>())
|
||
{
|
||
<MudSelectItem Value="@version">@version</MudSelectItem>
|
||
}
|
||
</MudSelect>
|
||
<MudButton Variant="Variant.Outlined" Size="Size.Small" Disabled="@(!this.selectedERIVersion.WasSpecificationSelected())" Href="@this.selectedERIVersion.SpecificationURL()" Target="_blank">
|
||
<MudIcon Icon="@Icons.Material.Filled.Link" Class="mr-2"/> Download specification
|
||
</MudButton>
|
||
</MudStack>
|
||
|
||
<MudText Typo="Typo.h4" Class="mt-6 mb-3">
|
||
Data source settings
|
||
</MudText>
|
||
|
||
<MudStack Row="@false" Spacing="1" Class="mb-3">
|
||
<MudSelect T="DataSources" @bind-Value="@this.selectedDataSource" AdornmentIcon="@Icons.Material.Filled.Dataset" Adornment="Adornment.Start" Label="Data source" Variant="Variant.Outlined" Margin="Margin.Dense" Validation="@this.ValidateDataSource" SelectedValuesChanged="@this.DataSourceWasChanged">
|
||
@foreach (var dataSource in Enum.GetValues<DataSources>())
|
||
{
|
||
<MudSelectItem Value="@dataSource">@dataSource.Name()</MudSelectItem>
|
||
}
|
||
</MudSelect>
|
||
@if (this.selectedDataSource is DataSources.CUSTOM)
|
||
{
|
||
<MudTextField T="string" @bind-Text="@this.otherDataSource" Validation="@this.ValidateOtherDataSource" Label="Describe your data source" Variant="Variant.Outlined" Margin="Margin.Normal" Lines="3" AutoGrow="@true" MaxLines="6" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
|
||
}
|
||
</MudStack>
|
||
|
||
@if(this.selectedDataSource > DataSources.FILE_SYSTEM)
|
||
{
|
||
<MudTextField T="string" @bind-Text="@this.dataSourceProductName" Label="Data source: product name" Validation="@this.ValidateDataSourceProductName" Variant="Variant.Outlined" Margin="Margin.Dense" UserAttributes="@USER_INPUT_ATTRIBUTES" Class="mb-3"/>
|
||
}
|
||
|
||
@if (this.NeedHostnamePort())
|
||
{
|
||
<div class="mb-3">
|
||
<MudStack Row="@true">
|
||
<MudTextField T="string" @bind-Text="@this.dataSourceHostname" Label="Data source: hostname" Validation="@this.ValidateHostname" Variant="Variant.Outlined" Margin="Margin.Dense" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
|
||
<MudNumericField Label="Data source: port" Immediate="@true" Min="1" Max="65535" Validation="@this.ValidatePort" @bind-Value="@this.dataSourcePort" Variant="Variant.Outlined" Margin="Margin.Dense"/>
|
||
</MudStack>
|
||
@if (this.dataSourcePort < 1024)
|
||
{
|
||
<MudText Typo="Typo.body2">
|
||
<b>Warning:</b> Ports below 1024 are reserved for system services. Your ERI server need to run with elevated permissions (root user).
|
||
</MudText>
|
||
}
|
||
</div>
|
||
}
|
||
|
||
<MudText Typo="Typo.h4" Class="mt-6 mb-3">
|
||
Authentication settings
|
||
</MudText>
|
||
|
||
<MudStack Row="@false" Spacing="1" Class="mb-1">
|
||
<MudSelectExtended
|
||
T="Auth"
|
||
ShrinkLabel="@true"
|
||
MultiSelection="@true"
|
||
MultiSelectionTextFunc="@this.GetMultiSelectionAuthText"
|
||
SelectedValues="@this.selectedAuthenticationMethods"
|
||
Validation="@this.ValidateAuthenticationMethods"
|
||
SelectedValuesChanged="@this.AuthenticationMethodWasChanged"
|
||
Label="Authentication method(s)"
|
||
Variant="Variant.Outlined"
|
||
Margin="Margin.Dense">
|
||
@foreach (var authMethod in Enum.GetValues<Auth>())
|
||
{
|
||
<MudSelectItemExtended Value="@authMethod">@authMethod.Name()</MudSelectItemExtended>
|
||
}
|
||
</MudSelectExtended>
|
||
<MudTextField T="string" @bind-Text="@this.authDescription" Label="@this.AuthDescriptionTitle()" Validation="@this.ValidateAuthDescription" Variant="Variant.Outlined" Margin="Margin.Normal" Lines="3" AutoGrow="@true" MaxLines="6" UserAttributes="@USER_INPUT_ATTRIBUTES"/>
|
||
</MudStack>
|
||
|
||
@if (this.selectedAuthenticationMethods.Contains(Auth.KERBEROS))
|
||
{
|
||
<MudSelect T="OperatingSystem" @bind-Value="@this.selectedOperatingSystem" Label="Operating system on which your ERI will run" Variant="Variant.Outlined" Margin="Margin.Dense" Validation="@this.ValidateOperatingSystem" Class="mb-1">
|
||
@foreach (var os in Enum.GetValues<OperatingSystem>())
|
||
{
|
||
<MudSelectItem Value="@os">@os.Name()</MudSelectItem>
|
||
}
|
||
</MudSelect>
|
||
}
|
||
|
||
<MudText Typo="Typo.h4" Class="mt-6 mb-3">
|
||
Data protection settings
|
||
</MudText>
|
||
|
||
<MudSelect T="AllowedLLMProviders" @bind-Value="@this.allowedLLMProviders" Label="Allowed LLM providers for this data source" Variant="Variant.Outlined" Margin="Margin.Dense" Validation="@this.ValidateAllowedLLMProviders" Class="mb-1">
|
||
@foreach (var option in Enum.GetValues<AllowedLLMProviders>())
|
||
{
|
||
<MudSelectItem Value="@option">@option.Name()</MudSelectItem>
|
||
}
|
||
</MudSelect>
|
||
|
||
<MudText Typo="Typo.h4" Class="mt-6 mb-1">
|
||
Data retrieval settings
|
||
</MudText>
|
||
|
||
<MudTextField T="string" @bind-Text="@this.retrievalDescription" Validation="@this.ValidateRetrievalDescription" Label="Describe your data retrieval process" Variant="Variant.Outlined" Margin="Margin.Normal" Lines="6" AutoGrow="@true" MaxLines="12" UserAttributes="@USER_INPUT_ATTRIBUTES" Class="mb-3"/>
|
||
<MudTextField T="string" @bind-Text="@this.additionalLibraries" Label="(Optional) Additional libraries" HelperText="Do you want to include additional libraries? Then name them and briefly describe what you want to achieve with them." Variant="Variant.Outlined" Margin="Margin.Normal" Lines="3" AutoGrow="@true" MaxLines="12" UserAttributes="@USER_INPUT_ATTRIBUTES" Class="mb-3"/>
|
||
|
||
<MudText Typo="Typo.h4" Class="mt-6 mb-1">
|
||
Provider selection for generation
|
||
</MudText>
|
||
|
||
<ProviderSelection @bind-ProviderSettings="@this.providerSettings" ValidateProvider="@this.ValidatingProvider"/> |