mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-09-27 03:33:37 +00:00
Gate the RAG background work behind the preview feature flag
This commit is contained in:
parent
8cdfdc4895
commit
d3a40e999c
@ -1,4 +1,5 @@
|
||||
using AIStudio.Components;
|
||||
using AIStudio.Settings.DataModel;
|
||||
using AIStudio.Tools.Services;
|
||||
|
||||
using Microsoft.AspNetCore.Components;
|
||||
@ -10,6 +11,9 @@ public partial class Embeddings : MSGComponentBase
|
||||
[Inject]
|
||||
private DataSourceEmbeddingService DataSourceEmbeddingService { get; init; } = null!;
|
||||
|
||||
[Inject]
|
||||
private NavigationManager NavigationManager { get; init; } = null!;
|
||||
|
||||
private IReadOnlyList<DataSourceEmbeddingStatus> Statuses { get; set; } = [];
|
||||
|
||||
private int TotalIndexedFiles => this.Statuses.Sum(status => status.IndexedFiles);
|
||||
@ -20,6 +24,17 @@ public partial class Embeddings : MSGComponentBase
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
//
|
||||
// This page belongs to the local RAG preview feature. Unlike the other preview pages, it
|
||||
// has a route of its own, so it can be reached by typing the address even while the feature
|
||||
// is switched off. There is nothing to show in that case.
|
||||
//
|
||||
if (!PreviewFeatures.PRE_RAG_2024.IsEnabled(this.SettingsManager))
|
||||
{
|
||||
this.NavigationManager.NavigateTo(Routes.HOME);
|
||||
return;
|
||||
}
|
||||
|
||||
this.ApplyFilters([], [ Event.RAG_EMBEDDING_STATUS_CHANGED, Event.CONFIGURATION_CHANGED ]);
|
||||
await base.OnInitializedAsync();
|
||||
this.ReloadStatuses();
|
||||
|
||||
@ -35,7 +35,13 @@ public sealed class AISrcSelWithRetCtxVal : IRagProcess
|
||||
//
|
||||
// 1. Check if the user wants to bind any data sources to the chat:
|
||||
//
|
||||
if (chatThread.DataSourceOptions.IsEnabled())
|
||||
//
|
||||
// Data sources are a preview feature. The check belongs here rather than in the options
|
||||
// themselves: a chat keeps its data source options while the feature is switched off, and
|
||||
// organizations may preselect data sources through a configuration plugin. Without this,
|
||||
// such a chat would still run the entire RAG process with the feature disabled.
|
||||
//
|
||||
if (PreviewFeatures.PRE_RAG_2024.IsEnabled(settings) && chatThread.DataSourceOptions.IsEnabled())
|
||||
{
|
||||
LOGGER.LogInformation("Data sources are enabled for this chat.");
|
||||
|
||||
|
||||
@ -1057,6 +1057,19 @@ public sealed partial class DataSourceEmbeddingService(
|
||||
|
||||
private bool IsSupportedInternalDataSource(IDataSource dataSource)
|
||||
{
|
||||
//
|
||||
// Local RAG is a preview feature, so nothing here may run while it is switched off. This is
|
||||
// the one place to decide that: every path which scans files, starts a watcher, creates the
|
||||
// index database or sends text to an embedding provider asks this question first.
|
||||
//
|
||||
// Checking the feature instead of relying on "no data sources configured" also covers the
|
||||
// case where somebody enabled the feature, configured local data sources, and switched the
|
||||
// feature off again. Their data sources stay in the settings, and without this check the
|
||||
// service would keep indexing them.
|
||||
//
|
||||
if (!PreviewFeatures.PRE_RAG_2024.IsEnabled(settingsManager))
|
||||
return false;
|
||||
|
||||
return dataSource is DataSourceLocalDirectory or DataSourceLocalFile;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user