From 0c9583c1cc56c3c85562f6eb1eea2e5641f6f891 Mon Sep 17 00:00:00 2001 From: Richie Cahill Date: Mon, 15 Jun 2026 21:59:51 -0400 Subject: [PATCH] moved config = load_config() to lifespan --- python/ebook_search/api/main.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/python/ebook_search/api/main.py b/python/ebook_search/api/main.py index 0c5ebb4..286e8a7 100644 --- a/python/ebook_search/api/main.py +++ b/python/ebook_search/api/main.py @@ -32,9 +32,24 @@ logger = logging.getLogger(__name__) async def lifespan(app: FastAPI) -> AsyncIterator[None]: """Manage application startup and shutdown resources.""" logger.info("ebook_search_startup") + config = load_config() + app.state.config = config + logger.info( + "ebook_search_config_loaded top_k=%s embedding_model=%s embedding_base_url=%s vllm_base_url=%s " + "rerank_enabled=%s answer_enabled=%s library_paths=%s", + config.top_k, + config.embedding_model, + config.embedding_base_url, + config.vllm_base_url, + config.rerank.enabled, + config.answer_enabled, + len(config.library_paths), + ) + if not config.library_paths: + logger.warning("ebook_search_no_library_paths_configured") app.state.engine = get_postgres_engine(name="RICHIE", vector_engine=True) with Session(app.state.engine) as session: - ensure_bm25_corpus(session, app.state.config) + ensure_bm25_corpus(session, config) try: yield finally: @@ -48,15 +63,6 @@ def create_app() -> FastAPI: app = FastAPI(title="EPUB Search", lifespan=lifespan) app.add_middleware(ZstdMiddleware) app.mount("/static", StaticFiles(directory=STATIC_DIR), name="static") - app.state.config = load_config() - logger.info( - "ebook_search_config_loaded top_k=%s embedding_model=%s rerank_enabled=%s answer_enabled=%s library_paths=%s", - app.state.config.top_k, - app.state.config.embedding_model, - app.state.config.rerank.enabled, - app.state.config.answer_enabled, - len(app.state.config.library_paths), - ) app.include_router(admin_router) app.include_router(health_router)