mirror of
https://github.com/marcominerva/SqlDatabaseVectorSearch.git
synced 2026-06-20 12:23:10 +00:00
Little refactoring
This commit is contained in:
@@ -36,7 +36,7 @@ public class ApplicationDbContext(DbContextOptions<ApplicationDbContext> options
|
|||||||
.HasMaxLength(8000)
|
.HasMaxLength(8000)
|
||||||
.IsVector();
|
.IsVector();
|
||||||
|
|
||||||
entity.HasOne(d => d.Document).WithMany(p => p.DocumentChunks)
|
entity.HasOne(d => d.Document).WithMany(p => p.Chunks)
|
||||||
.HasForeignKey(d => d.DocumentId)
|
.HasForeignKey(d => d.DocumentId)
|
||||||
.OnDelete(DeleteBehavior.NoAction)
|
.OnDelete(DeleteBehavior.NoAction)
|
||||||
.HasConstraintName("FK_DocumentChunks_Documents");
|
.HasConstraintName("FK_DocumentChunks_Documents");
|
||||||
|
|||||||
@@ -8,5 +8,5 @@ public class Document
|
|||||||
|
|
||||||
public DateTimeOffset CreationDate { get; set; }
|
public DateTimeOffset CreationDate { get; set; }
|
||||||
|
|
||||||
public virtual ICollection<DocumentChunk> DocumentChunks { get; set; } = [];
|
public virtual ICollection<DocumentChunk> Chunks { get; set; } = [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class VectorSearchService(ApplicationDbContext dbContext, ITextEmbeddingG
|
|||||||
public async Task<IEnumerable<Document>> GetDocumentsAsync()
|
public async Task<IEnumerable<Document>> GetDocumentsAsync()
|
||||||
{
|
{
|
||||||
var documents = await dbContext.Documents.OrderBy(d => d.Name).AsNoTracking()
|
var documents = await dbContext.Documents.OrderBy(d => d.Name).AsNoTracking()
|
||||||
.Select(d => new Document(d.Id, d.Name, d.CreationDate, d.DocumentChunks.Count))
|
.Select(d => new Document(d.Id, d.Name, d.CreationDate, d.Chunks.Count))
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
return documents;
|
return documents;
|
||||||
@@ -60,13 +60,13 @@ public class VectorSearchService(ApplicationDbContext dbContext, ITextEmbeddingG
|
|||||||
|
|
||||||
public async Task DeleteDocumentAsync(Guid documentId, bool saveChanges = true)
|
public async Task DeleteDocumentAsync(Guid documentId, bool saveChanges = true)
|
||||||
{
|
{
|
||||||
var document = await dbContext.Documents.Include(d => d.DocumentChunks).FirstOrDefaultAsync(d => d.Id == documentId);
|
var document = await dbContext.Documents.Include(d => d.Chunks).FirstOrDefaultAsync(d => d.Id == documentId);
|
||||||
if (document is null)
|
if (document is null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
dbContext.DocumentChunks.RemoveRange(document.DocumentChunks);
|
dbContext.DocumentChunks.RemoveRange(document.Chunks);
|
||||||
dbContext.Documents.Remove(document);
|
dbContext.Documents.Remove(document);
|
||||||
|
|
||||||
if (saveChanges)
|
if (saveChanges)
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ public class AppSettings
|
|||||||
|
|
||||||
public int OverlapTokens { get; init; } = 100;
|
public int OverlapTokens { get; init; } = 100;
|
||||||
|
|
||||||
public int MaxRelevantChunks { get; init; } = 6;
|
public int MaxRelevantChunks { get; init; } = 5;
|
||||||
|
|
||||||
public int MessageLimit { get; init; }
|
public int MessageLimit { get; init; }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user