diff --git a/backend/app/vector_store.py b/backend/app/vector_store.py index 3e4b50e..33bf64b 100644 --- a/backend/app/vector_store.py +++ b/backend/app/vector_store.py @@ -64,6 +64,25 @@ def get_embedding_size() -> int: return 384 +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, + ) + + async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any]: """ Ensure the Qdrant collection exists with proper schema. @@ -91,11 +110,7 @@ async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any] if not collection_exists: # Create new collection - client.create_collection( - collection_name=_collection_name, - vectors=VectorParams(size=size, distance=distance), - wait=True - ) + create_collection(client, _collection_name, size, distance) return { "success": True, @@ -112,11 +127,7 @@ async def ensure_collection(vector_size: Optional[int] = None) -> Dict[str, Any] if current_size != size: # Collection exists with wrong size - delete and recreate client.delete_collection(_collection_name) - client.create_collection( - collection_name=_collection_name, - vectors=VectorParams(size=size, distance=distance), - wait=True - ) + create_collection(client, _collection_name, size, distance) return { "success": True,