Commit Graph
2 Commits
Author SHA1 Message Date
utkarsh240799andClaude Opus 4.6 6d8875c196 test: add score normalization integration tests for vector stores
Level 1 tests validate each vector store's search() returns similarity
scores (higher = better) with correct ordering using known vectors.
Level 2 tests validate the full Memory.add() + Memory.search(threshold=...)
pipeline end-to-end. Both levels are standalone scripts run via CLI args
(e.g., `python test_score_normalization.py faiss`), not collected by pytest.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 21:57:40 +05:30
utkarsh240799andClaude Opus 4.6 224fd6c7d8 fix: normalize vector store scores to similarity (higher = better)
The threshold parameter in Memory.search() was silently broken for 11
vector stores because they returned raw distance scores (lower = better)
while the threshold check assumed similarity scores (higher = better).
This caused threshold filtering to be inverted — good matches got
dropped and bad matches passed through.

Convert all affected vector stores to return similarity scores:
- Cosine distance stores: score = max(0.0, 1.0 - distance)
- L2 distance stores: score = 1.0 / (1.0 + distance)
- Stores computing similarity then discarding it: return similarity directly

Fixes #4453
Related: #3283

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-28 21:57:40 +05:30