| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- from __future__ import annotations
- import os
- from pathlib import Path
- from fastapi import FastAPI
- from base.config_loader import load_config
- from service.matcher import StandardMatcher
- from views.app_views import JsonlQueryLogger, register_routes
- # 根据 APP_ENV 加载对应的 .env 配置文件
- load_config()
- PROJECT_ROOT = Path(__file__).resolve().parents[1]
- DEFAULT_CSV_PATH = PROJECT_ROOT / "归集617清洗.csv"
- DEFAULT_LOG_PATH = Path(__file__).resolve().parent / "logs" / "query.jsonl"
- def create_app(
- csv_path: str | Path | None = None,
- log_path: str | Path | None = None,
- ) -> FastAPI:
- source_path = Path(csv_path or os.getenv("STANDARDS_CSV_PATH", DEFAULT_CSV_PATH))
- query_log_path = Path(log_path or os.getenv("STANDARDS_LOG_PATH", DEFAULT_LOG_PATH))
- matcher = StandardMatcher.from_csv(source_path)
- query_logger = JsonlQueryLogger(query_log_path)
- application = FastAPI(
- title="Local Standards Search Service",
- version="0.1.0",
- docs_url=None,
- redoc_url=None,
- openapi_url=None,
- )
- register_routes(application, matcher, query_logger)
- return application
- app = create_app()
|