mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-10-18 05:37:59 +00:00
Indexed large data sources in steps so the others get their turn (#1052)
This commit is contained in:
1 parent
fe4a64f382
commit
a3c6b29313
26 files changed
+1932
-334
No files matched your search
@@ -24,10 +24,12 @@ namespace AIStudio.Tools.Services.Indexing;
|
||||
/// <param name="vectorStore">The vector store, known to be available.</param>
|
||||
/// <param name="indexStore">The index store, known to be available.</param>
|
||||
/// <param name="manifest">What the index stores about the data source, made to match the current embedding configuration.</param>
|
||||
/// <param name="share">How much work the run does at most, as its kind of data source says.</param>
|
||||
/// <param name="pass">The pass the run is a step of, which knows what failed during the steps before.</param>
|
||||
/// <param name="settingsManager">The settings, which the provider reads when it embeds.</param>
|
||||
/// <param name="publishStatus">Hands a new status of the data source to the embedding service.</param>
|
||||
/// <param name="logger">The logger of the embedding service, so the log reads the same whoever writes it.</param>
|
||||
internal sealed class IndexedRunContext(IIndexedDataSource dataSource, EmbeddingProvider embeddingProvider, IProvider provider, VectorStoreClient vectorStore, IndexStoreClient indexStore, DataSourceEmbeddingManifest manifest, SettingsManager settingsManager, Action<DataSourceEmbeddingStatus> publishStatus, ILogger logger)
|
||||
internal sealed class IndexedRunContext(IIndexedDataSource dataSource, EmbeddingProvider embeddingProvider, IProvider provider, VectorStoreClient vectorStore, IndexStoreClient indexStore, DataSourceEmbeddingManifest manifest, RunShare share, IndexingPass pass, SettingsManager settingsManager, Action<DataSourceEmbeddingStatus> publishStatus, ILogger logger)
|
||||
{
|
||||
/// <summary>
|
||||
/// After how many stored chunks the collection is optimized while a run is still going.
|
||||
@@ -58,6 +60,26 @@ internal sealed class IndexedRunContext(IIndexedDataSource dataSource, Embedding
|
||||
|
||||
public string CollectionName { get; } = DataSourceEmbeddingNames.GetCollectionName(dataSource.Id);
|
||||
|
||||
public RunShare Share => share;
|
||||
|
||||
public IndexingPass Pass => pass;
|
||||
|
||||
/// <summary>
|
||||
/// When the run first asked whether it did its share of the work, or null while it never did.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// The clock of the share starts then, cf. DocumentRunProgress.HasDoneItsShare. The embedding
|
||||
/// service reads it once the run is over, to notice a kind of data source which never asks.
|
||||
/// </remarks>
|
||||
public DateTimeOffset? ShareStartedUtc { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Starts the clock of the share of the work, unless it runs already.
|
||||
/// </summary>
|
||||
/// <param name="nowUtc">The current time.</param>
|
||||
/// <returns>When the clock started.</returns>
|
||||
public DateTimeOffset StartShareClock(DateTimeOffset nowUtc) => this.ShareStartedUtc ??= nowUtc;
|
||||
|
||||
/// <summary>
|
||||
/// Tells the user interface about a new status of the data source.
|
||||
/// </summary>
|
||||
|
||||
Reference in new issue
Block a user