feat(ai): pgvector embedding infrastructure (#19)
CI / backend (push) Successful in 51s
CI / frontend (push) Successful in 15s
Deploy Staging / deploy (push) Successful in 46s
Security / secrets (push) Successful in 4s
Security / dependencies (push) Successful in 56s
CI / backend (pull_request) Successful in 54s
CI / frontend (pull_request) Successful in 15s
Security / secrets (pull_request) Successful in 3s
Security / dependencies (pull_request) Successful in 55s
CI / backend (push) Successful in 51s
CI / frontend (push) Successful in 15s
Deploy Staging / deploy (push) Successful in 46s
Security / secrets (push) Successful in 4s
Security / dependencies (push) Successful in 56s
CI / backend (pull_request) Successful in 54s
CI / frontend (pull_request) Successful in 15s
Security / secrets (pull_request) Successful in 3s
Security / dependencies (pull_request) Successful in 55s
This commit was merged in pull request #19.
This commit is contained in:
@@ -85,10 +85,18 @@ public class AppDbContext : DbContext, IAppDbContext
|
||||
.HasMethod("gin").HasOperators("gin_trgm_ops");
|
||||
modelBuilder.Entity<MailDomain>().HasIndex(d => d.Name)
|
||||
.HasMethod("gin").HasOperators("gin_trgm_ops");
|
||||
|
||||
// pgvector: 768-dim embedding for semantic search, with an HNSW cosine index.
|
||||
// Populated by the embedding backfill worker when AI is enabled; null otherwise.
|
||||
modelBuilder.HasPostgresExtension("vector");
|
||||
modelBuilder.Entity<Email>().Property(e => e.Embedding).HasColumnType("vector(768)");
|
||||
modelBuilder.Entity<Email>().HasIndex(e => e.Embedding)
|
||||
.HasMethod("hnsw").HasOperators("vector_cosine_ops");
|
||||
}
|
||||
else
|
||||
{
|
||||
modelBuilder.Entity<Email>().Ignore(e => e.SearchVector);
|
||||
modelBuilder.Entity<Email>().Ignore(e => e.Embedding);
|
||||
}
|
||||
|
||||
base.OnModelCreating(modelBuilder);
|
||||
|
||||
Reference in New Issue
Block a user