feat(ai): pgvector embedding infrastructure for semantic search
Semantic-search slice 1 (infra). Adds the pgvector plumbing the backfill worker and hybrid search will use: - swap the Postgres image to pgvector/pgvector:pg16 (drop-in for pg16 data) - Pgvector + Pgvector.EntityFrameworkCore (0.2.0, EF8-compatible); UseVector() on the runtime + design-time contexts - Email.Embedding vector(768) column (nomic-embed-text dims), nullable, with an HNSW cosine index; ignored under the InMemory test provider - migration: CREATE EXTENSION vector + column + HNSW index Verified against a real pgvector container: extension, HNSW, and cosine search work, and the full EF round-trip (store a Pgvector.Vector, CosineDistance operator, nearest-first ordering) applies all migrations and passes. No vulnerable packages. Build + all 41 tests pass. Column stays null until Ollama generates embeddings (search falls back to lexical). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+3
-1
@@ -1,6 +1,8 @@
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
# pgvector-enabled Postgres 16 (semantic search). Drop-in for postgres:16 data;
|
||||
# the 'vector' extension is created by the AddEmbeddingColumn migration.
|
||||
image: pgvector/pgvector:pg16
|
||||
environment:
|
||||
POSTGRES_DB: inboxintel
|
||||
POSTGRES_USER: inboxintel
|
||||
|
||||
Reference in New Issue
Block a user