From 99565ca1075552e046d5e2741bb87b1ca20a2bbd Mon Sep 17 00:00:00 2001 From: grigo Date: Thu, 18 Jun 2026 12:25:15 +0300 Subject: [PATCH] fix Qdrant --- backend/app/memory/service.py | 5 +++-- backend/app/rag/store.py | 5 ++++- docker-compose.yml | 8 ++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/backend/app/memory/service.py b/backend/app/memory/service.py index 61e2149..ef48bec 100644 --- a/backend/app/memory/service.py +++ b/backend/app/memory/service.py @@ -1,7 +1,6 @@ import asyncio import json import logging -import threading from concurrent.futures import ThreadPoolExecutor from datetime import datetime, timezone from typing import Any @@ -23,6 +22,8 @@ DEFAULT_PROFILE: dict[str, Any] = { logger = logging.getLogger(__name__) +_RAG_EXECUTOR = ThreadPoolExecutor(max_workers=2, thread_name_prefix="rag") + class MemoryService: def __init__(self, db: Session, user_id: int): @@ -47,7 +48,7 @@ class MemoryService: except Exception: logger.exception("RAG background task failed") - threading.Thread(target=runner, daemon=True).start() + _RAG_EXECUTOR.submit(runner) @staticmethod def _rag_fact_payload(fact: MemoryFact) -> dict[str, Any]: diff --git a/backend/app/rag/store.py b/backend/app/rag/store.py index a1b9442..24e70bc 100644 --- a/backend/app/rag/store.py +++ b/backend/app/rag/store.py @@ -1,6 +1,7 @@ from __future__ import annotations import logging +from functools import lru_cache from typing import Any from qdrant_client import QdrantClient @@ -14,11 +15,13 @@ COLLECTION_FACTS = "memory_facts" COLLECTION_SUMMARIES = "session_summaries" COLLECTION_DOC_CHUNKS = "document_chunks" VECTOR_SIZE = 1536 +QDRANT_TIMEOUT_SEC = 30.0 +@lru_cache def _client() -> QdrantClient: settings = get_settings() - return QdrantClient(url=settings.qdrant_url) + return QdrantClient(url=settings.qdrant_url, timeout=QDRANT_TIMEOUT_SEC) def ensure_collections() -> None: diff --git a/docker-compose.yml b/docker-compose.yml index 94d09c4..7925685 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,6 +21,10 @@ services: - "${QDRANT_GRPC_PORT:-6334}:6334" volumes: - qdrant_data:/qdrant/storage + ulimits: + nofile: + soft: 65535 + hard: 65535 restart: unless-stopped backend: @@ -31,6 +35,10 @@ services: environment: QDRANT_URL: ${QDRANT_URL:-http://qdrant:6333} DATABASE_URL: postgresql+psycopg2://${POSTGRES_USER:-assistant}:${POSTGRES_PASSWORD:-assistant}@postgres:5432/${POSTGRES_DB:-assistant} + ulimits: + nofile: + soft: 65535 + hard: 65535 depends_on: postgres: condition: service_healthy