mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2026-11-04 20:27:21 +00:00
Added a way to read what the AI received from your sources (#1100)
Co-authored-by: Thorsten Sommer <SommerEngineering@users.noreply.github.com>
This commit is contained in:
1 parent
e0d8e18f34
commit
cbc4ce5413
229 files changed
+12739
-1269
No files matched your search
@@ -1,3 +1,4 @@
|
||||
using AIStudio.Tools.Databases;
|
||||
using AIStudio.Tools.Databases.VectorStore;
|
||||
|
||||
namespace AIStudio.Tests.Tools;
|
||||
@@ -22,6 +23,11 @@ internal sealed class RelocationVectorStore() : VectorStoreClient("Relocation te
|
||||
|
||||
public int DeletedDocuments { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// How often a failed attempt was discarded while the document kept its stored version.
|
||||
/// </summary>
|
||||
public int DiscardedAttempts { get; private set; }
|
||||
|
||||
public int InsertedBatches { get; private set; }
|
||||
|
||||
public override async Task RelocateEmbeddingFileAsync(string storeName, string parentFileId, string absolutePath, string relativePath, string fingerprint, CancellationToken token)
|
||||
@@ -56,8 +62,15 @@ internal sealed class RelocationVectorStore() : VectorStoreClient("Relocation te
|
||||
throw new InvalidOperationException("Existing unchanged files must not be embedded again.");
|
||||
}
|
||||
|
||||
public override Task DeleteEmbeddingByFile(string storeName, string filePath, string parentFileId, CancellationToken token)
|
||||
public override Task DeleteEmbeddingByFile(string storeName, string filePath, string parentFileId, IReadOnlyCollection<string> keepPointIds, CancellationToken token)
|
||||
{
|
||||
// Only identities are kept here, so points to keep mean the document keeps its identity:
|
||||
if (keepPointIds.Count > 0)
|
||||
{
|
||||
this.DiscardedAttempts++;
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
|
||||
this.DeletedDocuments++;
|
||||
foreach (var id in this.Locations.Where(entry => entry.Key == parentFileId || entry.Value == filePath).Select(entry => entry.Key).ToArray())
|
||||
this.Locations.Remove(id);
|
||||
@@ -73,9 +86,12 @@ internal sealed class RelocationVectorStore() : VectorStoreClient("Relocation te
|
||||
|
||||
public override Task OptimizeVectorStore(string storeName, CancellationToken token) => Task.CompletedTask;
|
||||
|
||||
public override Task<IReadOnlyList<VectorSearchResult>> SearchEmbeddingAsync(string storeName, IReadOnlyList<float> vector, int maxMatches, CancellationToken token) => throw new NotSupportedException();
|
||||
public override Task<IReadOnlyList<VectorSearchResult>> SearchEmbeddingAsync(string storeName, IReadOnlyList<float> vector, int maxMatches, IReadOnlyList<HiddenChunks> hiddenChunks, CancellationToken token) => throw new NotSupportedException();
|
||||
|
||||
public override Task<IReadOnlyList<VectorSearchResult>> SearchEmbeddingAsync(string storeName, IReadOnlyList<float> vector, int maxMatches, VectorSearchFilter filter, CancellationToken token) => throw new NotSupportedException();
|
||||
public override Task<IReadOnlyList<VectorSearchResult>> SearchEmbeddingAsync(string storeName, IReadOnlyList<float> vector, int maxMatches, VectorSearchFilter filter, IReadOnlyList<HiddenChunks> hiddenChunks, CancellationToken token) => throw new NotSupportedException();
|
||||
|
||||
// Only the identities and locations are kept here, never a vector:
|
||||
public override Task<IReadOnlyList<StoredVector>> RetrieveVectorsAsync(string storeName, IReadOnlyList<string> pointIds, CancellationToken token) => Task.FromResult<IReadOnlyList<StoredVector>>([]);
|
||||
|
||||
public override Task<VectorStoreBackupPreparation> PrepareBackupAsync(CancellationToken token) => throw new NotSupportedException();
|
||||
|
||||
|
||||
Reference in new issue
Block a user