"""FastAPI 应用工厂。""" from fastapi import FastAPI from app.auth.routes import router as auth_router from app.conversations.routes import router as conversations_router from app.conversations.routes import run_router from app.core.config import get_settings from app.core.errors import install_error_handlers from app.core.middleware import RequestContextMiddleware, configure_logging from app.db.session import init_engine def create_app() -> FastAPI: settings = get_settings() configure_logging(settings.log_level) app = FastAPI( title="Hunjing API", version="0.1.0", # 公共契约位于 docs/contracts 与 openapi/;本服务 docs 仅供开发调试。 docs_url="/_dev/docs", openapi_url="/_dev/openapi.json", ) install_error_handlers(app) init_engine(app) app.add_middleware(RequestContextMiddleware) app.include_router(auth_router) app.include_router(conversations_router) app.include_router(run_router) @app.get("/healthz", tags=["ops"]) async def healthz() -> dict[str, str]: return {"status": "ok", "env": settings.env} return app app = create_app()