You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.1 KiB
1.1 KiB
Option A semantic search hardening
This patch hardens the multi-model semantic search implementation in three places:
1. Semantic repository
- requires a positive model dimension
- requires a configured distance metric
- uses metric-aware SQL expressions:
- cosine ->
1 - distance - inner product ->
-1 * negative_inner_product - euclidean ->
1 / (1 + distance)
- cosine ->
2. Semantic engine
- resolves one explicit model per request
- validates:
- model active
- dimensions > 0
- distance metric configured
- query embedding mode supported
3. Database
- check constraint for positive dimensions
- unique constraint on
(representation_id, model_id) - comments documenting the per-model partial ANN index strategy
Why this matters
With Option A, multiple vector lengths live in one DOC.doc_embedding.embedding_vector column. That is safe only if:
- every semantic query resolves exactly one model
- the query vector uses that same model
- the repository filters by
model_id - the vector cast uses the correct model dimension
- ANN indexes are created per active model