Spaces:
Runtime error
Runtime error
| """ | |
| Dependency factories for FastAPI dependency injection. | |
| Provides cached singleton instances of EmbeddingService and VectorStore. | |
| """ | |
| from functools import lru_cache | |
| from app.services.embedding_service import EmbeddingService | |
| from app.services.qdrant_vector_store import QdrantVectorStore | |
| from app.services.retrieval_service import RetrievalService | |
| from app.services.vector_store import VectorStore | |
| from app.services.vector_store_contract import VectorStoreContract | |
| from app.utils.config import config_manager | |
| config = config_manager.get_config() | |
| def get_embedding_service() -> EmbeddingService: | |
| model_name = config.embedding_model | |
| return EmbeddingService( | |
| model_name=model_name, | |
| api_key=config.gemini_embedding_api_key, | |
| ) | |
| def get_vector_store() -> VectorStoreContract: | |
| if config.vector_store_backend == "qdrant": | |
| return QdrantVectorStore( | |
| url=config.qdrant_url, | |
| collection_name=config.qdrant_collection_name, | |
| vector_size=config.qdrant_vector_size, | |
| timeout=config.qdrant_timeout, | |
| ) | |
| if config.vector_store_backend == "chroma": | |
| persist_path = config.chroma_persist_path | |
| return VectorStore(persist_path=persist_path) | |
| raise ValueError(f"Unsupported VECTOR_STORE_BACKEND: {config.vector_store_backend}") | |
| def get_retrieval_service() -> RetrievalService: | |
| return RetrievalService( | |
| embedding_service=get_embedding_service(), vector_store=get_vector_store() | |
| ) | |