From be45adb975fd973822a20fea7443599cb0b32d5b Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Wed, 11 Mar 2026 21:02:05 +0100 Subject: [PATCH] fix(rag): Auto-create Qdrant collection on first index Collections may not exist if init_collections() failed at startup (e.g. Qdrant not ready). Now index_documents() ensures the collection exists before upserting. Co-Authored-By: Claude Opus 4.6 --- rag-service/qdrant_client_wrapper.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/rag-service/qdrant_client_wrapper.py b/rag-service/qdrant_client_wrapper.py index cfd1bbe..c4b27e4 100644 --- a/rag-service/qdrant_client_wrapper.py +++ b/rag-service/qdrant_client_wrapper.py @@ -105,6 +105,13 @@ class QdrantClientWrapper: # Indexing # ------------------------------------------------------------------ + async def ensure_collection(self, name: str, vector_size: int = 1024) -> None: + """Create collection if it doesn't exist.""" + try: + self.client.get_collection(name) + except Exception: + await self.create_collection(name, vector_size) + async def index_documents( self, collection: str, @@ -118,6 +125,10 @@ class QdrantClientWrapper: f"vectors ({len(vectors)}) and payloads ({len(payloads)}) must have equal length" ) + # Auto-create collection if missing + vector_size = len(vectors[0]) if vectors else 1024 + await self.ensure_collection(collection, vector_size) + if ids is None: ids = [str(uuid.uuid4()) for _ in vectors]