feat(embedding): expose model_version on dense and sparse embedder ports

Why:
- ADR-0001's Qdrant payload records embedding_model_version so a future model
  swap can identify which chunks need re-embedding. The embedder is what
  knows which model produced its vectors, so it reports this rather than the
  call site reconstructing it from settings.

Changes:
- DenseEmbedder/SparseEmbedder protocols gain a model_version: str attribute.
- OpenAICompatibleEmbedder reports its configured model; Bm25SparseEmbedder
  reports its analyzer (bm25-<analyzer>).
This commit is contained in:
Ali Zarinkolah
2026-08-20 18:15:38 +03:30
parent 5e0addcc55
commit 58ca6109d1
5 changed files with 23 additions and 0 deletions

View File

@@ -29,6 +29,7 @@ class FakeDenseEmbedder:
name: str
dimensions: int = 4
model_version: str = "fake-dense-v1"
calls: list[list[str]] = field(default_factory=list)
fail_next: bool = False
delay_seconds: float = 0.0
@@ -49,6 +50,7 @@ class FakeSparseEmbedder:
"""A scripted `SparseEmbedder`. Returns an empty sparse vector per text."""
name: str = "sparse"
model_version: str = "fake-sparse-v1"
calls: list[list[str]] = field(default_factory=list)
fail_next: bool = False
@@ -58,3 +60,4 @@ class FakeSparseEmbedder:
self.fail_next = False
raise RuntimeError("simulated embedder failure")
return [SparseVector(indices=[], values=[]) for _ in texts]