mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-09-13 02:50:37 +00:00
made datasource selection more user friendly
This commit is contained in:
parent
647c428ebf
commit
786b106096
@ -6364,6 +6364,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T214675
|
|||||||
-- Edit ERI v1 Data Source
|
-- Edit ERI v1 Data Source
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T221059217"] = "Edit ERI v1 Data Source"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T221059217"] = "Edit ERI v1 Data Source"
|
||||||
|
|
||||||
|
-- Indexed files
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T2235289713"] = "Indexed files"
|
||||||
|
|
||||||
-- Edit Local File Data Source
|
-- Edit Local File Data Source
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T2453292893"] = "Edit Local File Data Source"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T2453292893"] = "Edit Local File Data Source"
|
||||||
|
|
||||||
@ -6373,6 +6376,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T262437
|
|||||||
-- Name
|
-- Name
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T266367750"] = "Name"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T266367750"] = "Name"
|
||||||
|
|
||||||
|
-- Not applicable
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T2675917723"] = "Not applicable"
|
||||||
|
|
||||||
-- No valid embedding
|
-- No valid embedding
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T2698203405"] = "No valid embedding"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T2698203405"] = "No valid embedding"
|
||||||
|
|
||||||
@ -6415,6 +6421,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T359566
|
|||||||
-- Local data sources refresh when files change.
|
-- Local data sources refresh when files change.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T3687976654"] = "Local data sources refresh when files change."
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T3687976654"] = "Local data sources refresh when files change."
|
||||||
|
|
||||||
|
-- Not available
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T3706935413"] = "Not available"
|
||||||
|
|
||||||
-- Export ERI Data Source
|
-- Export ERI Data Source
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T3831281036"] = "Export ERI Data Source"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T3831281036"] = "Export ERI Data Source"
|
||||||
|
|
||||||
@ -6424,6 +6433,12 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T386503
|
|||||||
-- This ERI data source has an access token configured. Do you want to include the encrypted access token in the export? Note: The recipient will need the same encryption secret to use the access token.
|
-- This ERI data source has an access token configured. Do you want to include the encrypted access token in the export? Note: The recipient will need the same encryption secret to use the access token.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T4027572258"] = "This ERI data source has an access token configured. Do you want to include the encrypted access token in the export? Note: The recipient will need the same encryption secret to use the access token."
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T4027572258"] = "This ERI data source has an access token configured. Do you want to include the encrypted access token in the export? Note: The recipient will need the same encryption secret to use the access token."
|
||||||
|
|
||||||
|
-- Waiting for indexing status
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T4108252513"] = "Waiting for indexing status"
|
||||||
|
|
||||||
|
-- Information
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T4256323669"] = "Information"
|
||||||
|
|
||||||
-- Configured Data Sources
|
-- Configured Data Sources
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T543942217"] = "Configured Data Sources"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T543942217"] = "Configured Data Sources"
|
||||||
|
|
||||||
@ -6439,6 +6454,9 @@ UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T774473
|
|||||||
-- Cannot export this ERI data source because no authentication secret is configured. The issue was: {0}
|
-- Cannot export this ERI data source because no authentication secret is configured. The issue was: {0}
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T782820095"] = "Cannot export this ERI data source because no authentication secret is configured. The issue was: {0}"
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T782820095"] = "Cannot export this ERI data source because no authentication secret is configured. The issue was: {0}"
|
||||||
|
|
||||||
|
-- {0} of {1}
|
||||||
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T825342513"] = "{0} of {1}"
|
||||||
|
|
||||||
-- Local data sources refresh only when triggered manually.
|
-- Local data sources refresh only when triggered manually.
|
||||||
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T854231603"] = "Local data sources refresh only when triggered manually."
|
UI_TEXT_CONTENT["AISTUDIO::DIALOGS::SETTINGS::SETTINGSDIALOGDATASOURCES::T854231603"] = "Local data sources refresh only when triggered manually."
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
@using AIStudio.Settings
|
@using AIStudio.Settings
|
||||||
|
@using AIStudio.Provider
|
||||||
@inherits MSGComponentBase
|
@inherits MSGComponentBase
|
||||||
@if (this.SelectionMode is DataSourceSelectionMode.SELECTION_MODE)
|
@if (this.SelectionMode is DataSourceSelectionMode.SELECTION_MODE)
|
||||||
{
|
{
|
||||||
@ -92,7 +93,18 @@
|
|||||||
@foreach (var source in this.availableDataSources)
|
@foreach (var source in this.availableDataSources)
|
||||||
{
|
{
|
||||||
<MudListItem Value="@source">
|
<MudListItem Value="@source">
|
||||||
|
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1" Style="min-width: 0; width: 100%;">
|
||||||
|
<MudText Typo="Typo.body1" Style="min-width: 0; white-space: normal; overflow-wrap: anywhere;">
|
||||||
@source.Name
|
@source.Name
|
||||||
|
</MudText>
|
||||||
|
@if (source is IInternalDataSource)
|
||||||
|
{
|
||||||
|
<MudSpacer/>
|
||||||
|
<MudTooltip Text="@source.ComplianceLevel.GetName()">
|
||||||
|
<MudIcon Icon="@Icons.Material.Filled.Security" Class="confidence-icon" Style="@this.GetConfidenceIconStyle(source)"/>
|
||||||
|
</MudTooltip>
|
||||||
|
}
|
||||||
|
</MudStack>
|
||||||
</MudListItem>
|
</MudListItem>
|
||||||
}
|
}
|
||||||
</MudList>
|
</MudList>
|
||||||
@ -106,7 +118,18 @@
|
|||||||
@foreach (var source in this.availableDataSources)
|
@foreach (var source in this.availableDataSources)
|
||||||
{
|
{
|
||||||
<MudListItem Value="@source">
|
<MudListItem Value="@source">
|
||||||
|
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1" Style="min-width: 0; width: 100%;">
|
||||||
|
<MudText Typo="Typo.body1" Style="min-width: 0; white-space: normal; overflow-wrap: anywhere;">
|
||||||
@source.Name
|
@source.Name
|
||||||
|
</MudText>
|
||||||
|
@if (source is IInternalDataSource)
|
||||||
|
{
|
||||||
|
<MudSpacer/>
|
||||||
|
<MudTooltip Text="@source.ComplianceLevel.GetName()">
|
||||||
|
<MudIcon Icon="@Icons.Material.Filled.Security" Class="confidence-icon" Style="@this.GetConfidenceIconStyle(source)"/>
|
||||||
|
</MudTooltip>
|
||||||
|
}
|
||||||
|
</MudStack>
|
||||||
</MudListItem>
|
</MudListItem>
|
||||||
}
|
}
|
||||||
</MudList>
|
</MudList>
|
||||||
@ -117,9 +140,18 @@
|
|||||||
{
|
{
|
||||||
<MudListItem Value="@source">
|
<MudListItem Value="@source">
|
||||||
<ChildContent>
|
<ChildContent>
|
||||||
<MudText Typo="Typo.body1">
|
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1" Style="min-width: 0; width: 100%;">
|
||||||
|
<MudText Typo="Typo.body1" Style="min-width: 0; white-space: normal; overflow-wrap: anywhere;">
|
||||||
@source.DataSource.Name
|
@source.DataSource.Name
|
||||||
</MudText>
|
</MudText>
|
||||||
|
@if (source.DataSource is IInternalDataSource)
|
||||||
|
{
|
||||||
|
<MudSpacer/>
|
||||||
|
<MudTooltip Text="@source.DataSource.ComplianceLevel.GetName()">
|
||||||
|
<MudIcon Icon="@Icons.Material.Filled.Security" Class="confidence-icon" Style="@this.GetConfidenceIconStyle(source.DataSource)"/>
|
||||||
|
</MudTooltip>
|
||||||
|
}
|
||||||
|
</MudStack>
|
||||||
|
|
||||||
<MudProgressLinear Color="Color.Info" Min="0" Max="1" Value="@source.AIDecision.Confidence"/>
|
<MudProgressLinear Color="Color.Info" Min="0" Max="1" Value="@source.AIDecision.Confidence"/>
|
||||||
<MudJustifiedText Typo="Typo.body2">
|
<MudJustifiedText Typo="Typo.body2">
|
||||||
@ -170,7 +202,18 @@ else if (this.SelectionMode is DataSourceSelectionMode.CONFIGURATION_MODE)
|
|||||||
@foreach (var source in this.availableDataSources)
|
@foreach (var source in this.availableDataSources)
|
||||||
{
|
{
|
||||||
<MudListItem Value="@source">
|
<MudListItem Value="@source">
|
||||||
|
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1" Style="min-width: 0; width: 100%;">
|
||||||
|
<MudText Typo="Typo.body1" Style="min-width: 0; white-space: normal; overflow-wrap: anywhere;">
|
||||||
@source.Name
|
@source.Name
|
||||||
|
</MudText>
|
||||||
|
@if (source is IInternalDataSource)
|
||||||
|
{
|
||||||
|
<MudSpacer/>
|
||||||
|
<MudTooltip Text="@source.ComplianceLevel.GetName()">
|
||||||
|
<MudIcon Icon="@Icons.Material.Filled.Security" Class="confidence-icon" Style="@this.GetConfidenceIconStyle(source)"/>
|
||||||
|
</MudTooltip>
|
||||||
|
}
|
||||||
|
</MudStack>
|
||||||
</MudListItem>
|
</MudListItem>
|
||||||
}
|
}
|
||||||
</MudList>
|
</MudList>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using AIStudio.Dialogs.Settings;
|
using AIStudio.Dialogs.Settings;
|
||||||
|
using AIStudio.Provider;
|
||||||
using AIStudio.Settings;
|
using AIStudio.Settings;
|
||||||
using AIStudio.Settings.DataModel;
|
using AIStudio.Settings.DataModel;
|
||||||
using AIStudio.Tools.Services;
|
using AIStudio.Tools.Services;
|
||||||
@ -142,6 +143,8 @@ public partial class DataSourceSelection : MSGComponentBase
|
|||||||
|
|
||||||
private string GetAIReasoning(DataSourceAgentSelected source) => $"AI reasoning (confidence {source.AIDecision.Confidence:P0}): {source.AIDecision.Reason}";
|
private string GetAIReasoning(DataSourceAgentSelected source) => $"AI reasoning (confidence {source.AIDecision.Confidence:P0}): {source.AIDecision.Reason}";
|
||||||
|
|
||||||
|
private string GetConfidenceIconStyle(IDataSource source) => $"{source.ComplianceLevel.SetColorStyle(this.SettingsManager)} flex-shrink: 0;";
|
||||||
|
|
||||||
public void ChangeOptionWithoutSaving(DataSourceOptions options, IReadOnlyList<DataSourceAgentSelected>? aiSelectedDataSources = null)
|
public void ChangeOptionWithoutSaving(DataSourceOptions options, IReadOnlyList<DataSourceAgentSelected>? aiSelectedDataSources = null)
|
||||||
{
|
{
|
||||||
this.DataSourceOptions = options;
|
this.DataSourceOptions = options;
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
@using AIStudio.Settings
|
||||||
@using AIStudio.Settings.DataModel
|
@using AIStudio.Settings.DataModel
|
||||||
@inherits SettingsDialogBase
|
@inherits SettingsDialogBase
|
||||||
|
|
||||||
@ -16,35 +17,56 @@
|
|||||||
|
|
||||||
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Class="mb-3" Wrap="Wrap.Wrap">
|
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Class="mb-3" Wrap="Wrap.Wrap">
|
||||||
<MudTextSwitch Label="@T("Automatic local data source refresh")" Value="@this.SettingsManager.ConfigurationData.App.DataSourceIndexing.AutomaticRefresh" LabelOn="@T("Local data sources refresh when files change.")" LabelOff="@T("Local data sources refresh only when triggered manually.")" ValueChanged="@this.AutomaticRefreshChanged"/>
|
<MudTextSwitch Label="@T("Automatic local data source refresh")" Value="@this.SettingsManager.ConfigurationData.App.DataSourceIndexing.AutomaticRefresh" LabelOn="@T("Local data sources refresh when files change.")" LabelOff="@T("Local data sources refresh only when triggered manually.")" ValueChanged="@this.AutomaticRefreshChanged"/>
|
||||||
<MudButton Variant="Variant.Filled" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Sync" Disabled="@(!this.HasRefreshableDataSources())" OnClick="@this.RefreshAllDataSources">
|
<MudTooltip Text="@T("Refresh all")">
|
||||||
@T("Refresh all")
|
<MudIconButton Color="Color.Primary" Icon="@Icons.Material.Filled.Sync" Disabled="@(!this.HasRefreshableDataSources())" OnClick="@this.RefreshAllDataSources"/>
|
||||||
</MudButton>
|
</MudTooltip>
|
||||||
</MudStack>
|
</MudStack>
|
||||||
|
|
||||||
|
@{ var embeddingStatuses = this.DataSourceEmbeddingService.GetStatuses().ToDictionary(status => status.DataSourceId, StringComparer.OrdinalIgnoreCase); }
|
||||||
<MudTable Items="@this.SettingsManager.ConfigurationData.DataSources" Hover="@true" Class="border-dashed border rounded-lg">
|
<MudTable Items="@this.SettingsManager.ConfigurationData.DataSources" Hover="@true" Class="border-dashed border rounded-lg">
|
||||||
<ColGroup>
|
<ColGroup>
|
||||||
<col style="width: 3em;"/>
|
<col style="width: 3em;"/>
|
||||||
<col/>
|
<col/>
|
||||||
<col style="width: 12em;"/>
|
<col style="width: 9em;"/>
|
||||||
<col style="width: 12em;"/>
|
<col style="width: 10em;"/>
|
||||||
<col style="width: 40em;"/>
|
<col style="width: 8em;"/>
|
||||||
|
<col style="width: 16em;"/>
|
||||||
</ColGroup>
|
</ColGroup>
|
||||||
<HeaderContent>
|
<HeaderContent>
|
||||||
<MudTh>#</MudTh>
|
<MudTh>#</MudTh>
|
||||||
<MudTh>@T("Name")</MudTh>
|
<MudTh>@T("Name")</MudTh>
|
||||||
<MudTh>@T("Type")</MudTh>
|
<MudTh>@T("Type")</MudTh>
|
||||||
<MudTh>@T("Embedding")</MudTh>
|
<MudTh>@T("Embedding")</MudTh>
|
||||||
|
<MudTh>@T("Indexed files")</MudTh>
|
||||||
<MudTh>@T("Actions")</MudTh>
|
<MudTh>@T("Actions")</MudTh>
|
||||||
</HeaderContent>
|
</HeaderContent>
|
||||||
<RowTemplate>
|
<RowTemplate>
|
||||||
|
@{ var embeddingStatus = embeddingStatuses.GetValueOrDefault(context.Id); }
|
||||||
<MudTd>@context.Num</MudTd>
|
<MudTd>@context.Num</MudTd>
|
||||||
<MudTd>@context.Name</MudTd>
|
<MudTd Style="white-space: normal; overflow-wrap: anywhere;">@context.Name</MudTd>
|
||||||
<MudTd>@context.Type.GetDisplayName()</MudTd>
|
<MudTd Style="white-space: nowrap;">@context.Type.GetDisplayName()</MudTd>
|
||||||
<MudTd>@this.GetEmbeddingName(context)</MudTd>
|
<MudTd Style="white-space: nowrap;">@this.GetEmbeddingName(context)</MudTd>
|
||||||
|
<MudTd>
|
||||||
|
@if (context is IInternalDataSource)
|
||||||
|
{
|
||||||
|
<MudTooltip Text="@(embeddingStatus?.StateLabel ?? T("Waiting for indexing status"))">
|
||||||
|
<MudStack Row="true" AlignItems="AlignItems.Center" Spacing="1">
|
||||||
|
<MudIcon Icon="@Icons.Material.Filled.Circle" Color="@GetIndexingStatusColor(embeddingStatus)" Size="Size.Small" Style="width: 0.75rem; height: 0.75rem; flex-shrink: 0;"/>
|
||||||
|
<MudText Typo="Typo.body2">@(embeddingStatus is null ? T("Not available") : string.Format(T("{0} of {1}"), embeddingStatus.IndexedFiles, embeddingStatus.TotalFiles))</MudText>
|
||||||
|
</MudStack>
|
||||||
|
</MudTooltip>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<MudText Typo="Typo.body2" Color="Color.Secondary">@T("Not applicable")</MudText>
|
||||||
|
}
|
||||||
|
</MudTd>
|
||||||
|
|
||||||
<MudTd>
|
<MudTd>
|
||||||
<MudStack Row="true" Class="mb-2 mt-2" Wrap="Wrap.Wrap">
|
<MudStack Row="true" Class="mb-2 mt-2" Spacing="1" Wrap="Wrap.NoWrap">
|
||||||
<MudIconButton Variant="Variant.Filled" Color="Color.Info" Icon="@Icons.Material.Filled.Info" OnClick="() => this.ShowInformation(context)"/>
|
<MudTooltip Text="@T("Information")">
|
||||||
|
<MudIconButton Color="Color.Info" Icon="@Icons.Material.Outlined.Info" OnClick="() => this.ShowInformation(context)"/>
|
||||||
|
</MudTooltip>
|
||||||
@if (context.IsEnterpriseConfiguration)
|
@if (context.IsEnterpriseConfiguration)
|
||||||
{
|
{
|
||||||
<MudTooltip Text="@T("This data source is managed by your organization.")">
|
<MudTooltip Text="@T("This data source is managed by your organization.")">
|
||||||
@ -53,21 +75,21 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<MudButton Variant="Variant.Filled" Color="Color.Info" StartIcon="@Icons.Material.Filled.Edit" OnClick="() => this.EditDataSource(context)">
|
<MudTooltip Text="@T("Edit")">
|
||||||
@T("Edit")
|
<MudIconButton Color="Color.Info" Icon="@Icons.Material.Filled.Edit" OnClick="() => this.EditDataSource(context)"/>
|
||||||
</MudButton>
|
</MudTooltip>
|
||||||
<MudButton Variant="Variant.Filled" Color="Color.Primary" StartIcon="@Icons.Material.Filled.Sync" Disabled="@(!this.CanRefreshDataSource(context))" OnClick="() => this.RefreshDataSource(context)">
|
<MudTooltip Text="@T("Refresh")">
|
||||||
@T("Refresh")
|
<MudIconButton Color="Color.Primary" Icon="@Icons.Material.Filled.Sync" Disabled="@(!this.CanRefreshDataSource(context))" OnClick="() => this.RefreshDataSource(context)"/>
|
||||||
</MudButton>
|
</MudTooltip>
|
||||||
@if (this.SettingsManager.ConfigurationData.App.ShowAdminSettings && context is DataSourceERI_V1)
|
@if (this.SettingsManager.ConfigurationData.App.ShowAdminSettings && context is DataSourceERI_V1)
|
||||||
{
|
{
|
||||||
<MudTooltip Text="@T("Export configuration")">
|
<MudTooltip Text="@T("Export configuration")">
|
||||||
<MudIconButton Variant="Variant.Filled" Color="Color.Info" Icon="@Icons.Material.Filled.Dataset" OnClick="() => this.ExportDataSource(context)"/>
|
<MudIconButton Color="Color.Info" Icon="@Icons.Material.Filled.Dataset" OnClick="() => this.ExportDataSource(context)"/>
|
||||||
</MudTooltip>
|
</MudTooltip>
|
||||||
}
|
}
|
||||||
<MudButton Variant="Variant.Filled" Color="Color.Error" StartIcon="@Icons.Material.Filled.Delete" OnClick="() => this.DeleteDataSource(context)">
|
<MudTooltip Text="@T("Delete")">
|
||||||
@T("Delete")
|
<MudIconButton Color="Color.Error" Icon="@Icons.Material.Filled.Delete" OnClick="() => this.DeleteDataSource(context)"/>
|
||||||
</MudButton>
|
</MudTooltip>
|
||||||
}
|
}
|
||||||
</MudStack>
|
</MudStack>
|
||||||
</MudTd>
|
</MudTd>
|
||||||
@ -81,7 +103,10 @@
|
|||||||
</MudText>
|
</MudText>
|
||||||
}
|
}
|
||||||
|
|
||||||
<MudMenu EndIcon="@Icons.Material.Filled.KeyboardArrowDown" Label="@T("Add Data Source")" Color="Color.Primary" Variant="Variant.Filled" AnchorOrigin="Origin.CenterCenter" TransformOrigin="Origin.TopLeft" Class="mt-3 mb-6">
|
</DialogContent>
|
||||||
|
<DialogActions>
|
||||||
|
<MudStack Row="true" AlignItems="AlignItems.Center" Justify="Justify.SpaceBetween" Style="width: 100%;">
|
||||||
|
<MudMenu EndIcon="@Icons.Material.Filled.KeyboardArrowDown" Label="@T("Add Data Source")" Color="Color.Primary" Variant="Variant.Filled" AnchorOrigin="Origin.TopLeft" TransformOrigin="Origin.BottomLeft">
|
||||||
<MudMenuItem OnClick="() => this.AddDataSource(DataSourceType.ERI_V1)">
|
<MudMenuItem OnClick="() => this.AddDataSource(DataSourceType.ERI_V1)">
|
||||||
@T("External Data (ERI-Server v1)")
|
@T("External Data (ERI-Server v1)")
|
||||||
</MudMenuItem>
|
</MudMenuItem>
|
||||||
@ -92,10 +117,9 @@
|
|||||||
@T("Local File")
|
@T("Local File")
|
||||||
</MudMenuItem>
|
</MudMenuItem>
|
||||||
</MudMenu>
|
</MudMenu>
|
||||||
</DialogContent>
|
|
||||||
<DialogActions>
|
|
||||||
<MudButton OnClick="@this.Close" Variant="Variant.Filled">
|
<MudButton OnClick="@this.Close" Variant="Variant.Filled">
|
||||||
@T("Close")
|
@T("Close")
|
||||||
</MudButton>
|
</MudButton>
|
||||||
|
</MudStack>
|
||||||
</DialogActions>
|
</DialogActions>
|
||||||
</MudDialog>
|
</MudDialog>
|
||||||
|
|||||||
@ -12,6 +12,29 @@ public partial class SettingsDialogDataSources : SettingsDialogBase
|
|||||||
[Inject]
|
[Inject]
|
||||||
private DataSourceEmbeddingService DataSourceEmbeddingService { get; init; } = null!;
|
private DataSourceEmbeddingService DataSourceEmbeddingService { get; init; } = null!;
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
await base.OnInitializedAsync();
|
||||||
|
this.ApplyFilters([], [ Event.CONFIGURATION_CHANGED, Event.RAG_EMBEDDING_STATUS_CHANGED ]);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override async Task ProcessIncomingMessage<T>(ComponentBase? sendingComponent, Event triggeredEvent, T? data) where T : default
|
||||||
|
{
|
||||||
|
await base.ProcessIncomingMessage(sendingComponent, triggeredEvent, data);
|
||||||
|
if (triggeredEvent is Event.RAG_EMBEDDING_STATUS_CHANGED)
|
||||||
|
this.StateHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Color GetIndexingStatusColor(DataSourceEmbeddingStatus? status)
|
||||||
|
{
|
||||||
|
if (status is null || status.State is DataSourceEmbeddingState.IDLE or DataSourceEmbeddingState.QUEUED or DataSourceEmbeddingState.RUNNING)
|
||||||
|
return Color.Warning;
|
||||||
|
|
||||||
|
return status.State is DataSourceEmbeddingState.FAILED || status.FailedFiles > 0
|
||||||
|
? Color.Error
|
||||||
|
: Color.Success;
|
||||||
|
}
|
||||||
|
|
||||||
private string GetEmbeddingName(IDataSource dataSource)
|
private string GetEmbeddingName(IDataSource dataSource)
|
||||||
{
|
{
|
||||||
if(dataSource is IInternalDataSource internalDataSource)
|
if(dataSource is IInternalDataSource internalDataSource)
|
||||||
|
|||||||
@ -26,6 +26,9 @@ public static class ConfidenceLevelExtensions
|
|||||||
{
|
{
|
||||||
(ConfidenceLevel.NONE, _) => "#cccccc",
|
(ConfidenceLevel.NONE, _) => "#cccccc",
|
||||||
|
|
||||||
|
(ConfidenceLevel.UNKNOWN, false) => "#777777",
|
||||||
|
(ConfidenceLevel.UNKNOWN, true) => "#aaaaaa",
|
||||||
|
|
||||||
(ConfidenceLevel.UNTRUSTED, false) => "#ff0000",
|
(ConfidenceLevel.UNTRUSTED, false) => "#ff0000",
|
||||||
(ConfidenceLevel.UNTRUSTED, true) => "#800000",
|
(ConfidenceLevel.UNTRUSTED, true) => "#800000",
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user