Spaces:
Sleeping
Sleeping
File size: 1,180 Bytes
4225666 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
"""
FastAPI dependencies for dependency injection.
"""
from functools import lru_cache
# from app.services.rag_service import RAGService # MOVED INSIDE FUNCTION TO PREVENT CIRCULAR IMPORT
from app.utils.model_factory import get_llm_model, get_embedding_model, get_local_model
from app.core.config import settings
import logging
logger = logging.getLogger(__name__)
@lru_cache()
def get_rag_service():
from app.services.rag_service import RAGService
"""
Get RAG service instance (singleton).
This is cached so the same instance is reused across requests.
Models are initialized once and reused.
Returns:
RAGService: Configured RAG service
"""
logger.info("Initializing RAG service...")
# Initialize models
llm_model = get_llm_model()
embedding_model = get_embedding_model()
# Create RAG service
rag_service = RAGService(
model=llm_model,
collection_name=settings.collection_name,
persist_directory=settings.persist_directory,
embedding_model=embedding_model,
k=settings.similarity_top_k
)
logger.info("RAG service initialized successfully")
return rag_service
|