fix: harden task3 qdrant compatibility boundaries

This commit is contained in:
2026-08-11 07:34:44 +02:00
parent 0724a73300
commit 99e0024973
11 changed files with 410 additions and 227 deletions
+9 -1
View File
@@ -32,12 +32,20 @@ def build_vector_store(cfg: Config, *, require_write: bool = False) -> VectorSto
match resource.type:
case "qdrant":
expected_dimension = cfg.embeddings.dim if cfg.embeddings is not None else None
if resource.collection_lifecycle == "require_existing" and (
expected_dimension is None or expected_dimension <= 0
):
raise ConfigError(
"require_existing Qdrant vectors require an explicit positive embedding dimension"
)
return QdrantVectorStore(
base_url=resource.base_url,
collection=resource.collection,
workspace_id=cfg._workspace_id,
workspace_revision=cfg._workspace_revision,
expected_dimension=cfg.embeddings.dim if cfg.embeddings is not None else None,
expected_dimension=expected_dimension,
expected_distance="Cosine",
collection_lifecycle=resource.collection_lifecycle,
)
case other: # pragma: no cover - Pydantic's discriminator rejects this first.