| """ | |
| api/dependencies.py — Shared singleton instances for the API layer | |
| All heavy objects (embedder, vectorstore, reranker, pattern_store, etc.) | |
| are initialised once here and used across all route handlers. | |
| """ | |
| from retrieval.embedder import Embedder | |
| from retrieval.vectorstore import VectorStore | |
| from retrieval.bm25_index import BM25Index | |
| from retrieval.reranker import Reranker | |
| from generation.drafter import Drafter | |
| from generation.validator import CitationValidator | |
| from feedback.pattern_store import PatternStore | |
| from feedback.pipeline import FeedbackPipeline | |
| # Singletons — initialised at module load (on first import) | |
| embedder = Embedder() | |
| vectorstore = VectorStore(embedder=embedder) | |
| bm25_index = BM25Index() | |
| reranker = Reranker() | |
| drafter = Drafter() | |
| validator = CitationValidator() | |
| pattern_store = PatternStore() | |
| feedback_pipeline = FeedbackPipeline(pattern_store=pattern_store) | |