From fbddfc51d20038cbec3f137fd75045a7cf78cca9 Mon Sep 17 00:00:00 2001 From: george Date: Sat, 6 Jun 2026 00:00:19 +0100 Subject: [PATCH] Handle Qdrant create_collection wait support --- backend/app/vector_store.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/backend/app/vector_store.py b/backend/app/vector_store.py index 33bf64b..feb93c8 100644 --- a/backend/app/vector_store.py +++ b/backend/app/vector_store.py @@ -67,20 +67,23 @@ def get_embedding_size() -> int: def create_collection(client: Any, collection_name: str, size: int, distance: Any) -> None: """Create a Qdrant collection across qdrant-client keyword changes.""" vector_params = VectorParams(size=size, distance=distance) - try: - client.create_collection( - collection_name=collection_name, - vectors_config=vector_params, - wait=True, - ) - except TypeError as exc: - if "vectors_config" not in str(exc): - raise - client.create_collection( - collection_name=collection_name, - vectors=vector_params, - wait=True, - ) + variants = ( + {"vectors_config": vector_params, "wait": True}, + {"vectors_config": vector_params}, + {"vectors": vector_params, "wait": True}, + {"vectors": vector_params}, + ) + last_error = None + for kwargs in variants: + try: + client.create_collection(collection_name=collection_name, **kwargs) + return + except (AssertionError, TypeError, ValueError) as exc: + last_error = exc + message = str(exc) + if not any(key in message for key in ("Unknown arguments", "vectors", "wait")): + raise + raise RuntimeError(f"Could not create Qdrant collection: {last_error}") async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any]: