refactor: consolidate duplicate QdrantService singleton into singleton.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Claude Code
2026-04-01 16:12:21 -05:00
parent 90dd87edeb
commit 9fa5d08ce0
2 changed files with 3 additions and 19 deletions

View File

@@ -1,8 +1,9 @@
"""Global singleton instances for Vera-AI.""" """Global singleton instances for Vera-AI."""
from typing import Optional
from .qdrant_service import QdrantService from .qdrant_service import QdrantService
from .config import config from .config import config
_qdrant_service: QdrantService = None _qdrant_service: Optional[QdrantService] = None
def get_qdrant_service() -> QdrantService: def get_qdrant_service() -> QdrantService:

View File

@@ -1,5 +1,6 @@
"""Utility functions for vera-ai.""" """Utility functions for vera-ai."""
from .config import config from .config import config
from .singleton import get_qdrant_service
import tiktoken import tiktoken
import os import os
from typing import List, Dict, Optional from typing import List, Dict, Optional
@@ -13,24 +14,6 @@ ENCODING = tiktoken.get_encoding("cl100k_base")
PROMPTS_DIR = Path(os.environ.get("VERA_PROMPTS_DIR", "/app/prompts")) PROMPTS_DIR = Path(os.environ.get("VERA_PROMPTS_DIR", "/app/prompts"))
STATIC_DIR = Path(os.environ.get("VERA_STATIC_DIR", "/app/static")) STATIC_DIR = Path(os.environ.get("VERA_STATIC_DIR", "/app/static"))
# Global qdrant_service instance for utils
_qdrant_service = None
def get_qdrant_service():
"""Get or create the QdrantService singleton."""
global _qdrant_service
if _qdrant_service is None:
from .config import config
from .qdrant_service import QdrantService
_qdrant_service = QdrantService(
host=config.qdrant_host,
collection=config.qdrant_collection,
embedding_model=config.embedding_model,
vector_size=config.vector_size,
ollama_host=config.ollama_host
)
return _qdrant_service
def count_tokens(text: str) -> int: def count_tokens(text: str) -> int:
"""Count tokens in text.""" """Count tokens in text."""
if not text: if not text: