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

@@ -86,6 +86,7 @@ class Bm25SparseEmbedder:
name = "sparse"
def __init__(self, settings: SparseEmbeddingSettings) -> None:
self.model_version = f"bm25-{settings.analyzer}"
self._settings = settings
def embed_batch(self, texts: Sequence[str], *, query: bool = False) -> list[SparseVector]:

View File

@@ -52,6 +52,7 @@ class OpenAICompatibleEmbedder:
keep_alive: str | None = None,
) -> None:
self.name = name
self.model_version = model
self._client = client
self._model = model
self._dimensions = dimensions