Fix concurrency: process-wide shared Qdrant client + per-op lock
Browse files
src/cdms/document_loader.py
CHANGED
|
@@ -15,7 +15,7 @@ from datetime import datetime
|
|
| 15 |
from src.cdms.pdf_processor import PDFProcessor
|
| 16 |
from src.cdms.schema import DatabaseManager, Document, DocumentChunk
|
| 17 |
from src.rag.embeddings import OpenAIEmbeddingService
|
| 18 |
-
from src.rag.vector_store import QdrantVectorStore
|
| 19 |
from src.config.credentials import CredentialsManager
|
| 20 |
from src.config.paths import PDF_DIR
|
| 21 |
from src.cdms.product_catalog import normalize_filename
|
|
@@ -59,12 +59,13 @@ class DocumentLoader:
|
|
| 59 |
print(f"⚠️ Warning: Could not initialize OpenAI embeddings: {e}")
|
| 60 |
self.embedding_service = None
|
| 61 |
|
| 62 |
-
# Reuse
|
|
|
|
| 63 |
if vector_store is not None:
|
| 64 |
self.vector_store = vector_store
|
| 65 |
else:
|
| 66 |
try:
|
| 67 |
-
self.vector_store =
|
| 68 |
except Exception as e:
|
| 69 |
print(f"⚠️ Warning: Could not initialize Qdrant: {e}")
|
| 70 |
self.vector_store = None
|
|
|
|
| 15 |
from src.cdms.pdf_processor import PDFProcessor
|
| 16 |
from src.cdms.schema import DatabaseManager, Document, DocumentChunk
|
| 17 |
from src.rag.embeddings import OpenAIEmbeddingService
|
| 18 |
+
from src.rag.vector_store import QdrantVectorStore, get_shared_vector_store
|
| 19 |
from src.config.credentials import CredentialsManager
|
| 20 |
from src.config.paths import PDF_DIR
|
| 21 |
from src.cdms.product_catalog import normalize_filename
|
|
|
|
| 59 |
print(f"⚠️ Warning: Could not initialize OpenAI embeddings: {e}")
|
| 60 |
self.embedding_service = None
|
| 61 |
|
| 62 |
+
# Reuse the provided store, else the process-wide singleton (never open a
|
| 63 |
+
# second client to the embedded store — see get_shared_vector_store).
|
| 64 |
if vector_store is not None:
|
| 65 |
self.vector_store = vector_store
|
| 66 |
else:
|
| 67 |
try:
|
| 68 |
+
self.vector_store = get_shared_vector_store()
|
| 69 |
except Exception as e:
|
| 70 |
print(f"⚠️ Warning: Could not initialize Qdrant: {e}")
|
| 71 |
self.vector_store = None
|