def create_fastapi()

in src/backend/entrypoints/llm_backend/app.py [0:0]


def create_fastapi() -> FastAPI:
    config = Settings()

    fastapi_app = FastAPI(
        title=constants.PROJECT_NAME,
        version=constants.VERSION,
        docs_url=f"{constants.MARKET_ALERTS_API_PREFIX}{constants.SWAGGER_DOC_URL}",
        description=constants.DESCRIPTION,
        openapi_url=f"{constants.MARKET_ALERTS_API_PREFIX}/openapi.json",
    )
    fastapi_app.include_router(api.tickers_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.llm_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.plots_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.jupyter_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.session_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.tasks_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.ws_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.files_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.ui_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.alerts_backend_router, prefix=constants.MARKET_ALERTS_API_PREFIX)
    fastapi_app.include_router(api.optimization_router, prefix=constants.MARKET_ALERTS_API_PREFIX)

    if config.authentication.enabled:
        if config.limits_enabled:
            alerts_backend_proxy_singleton.set_user_context(user)
            register_limits_middleware(fastapi_app)

        fastapi_app.add_middleware(
            SessionMiddleware,
            session_manager=session_manager_singleton,
            public_endpoints=MARKET_ALERTS_PUBLIC_ENDPOINTS + MARKET_ALERTS_NO_SESSION_ENDPOINTS,
            readonly_endpoints=MARKET_ALERTS_READ_ONLY_SESSION_ENDPOINTS,
        )
        register_auth_middleware(fastapi_app, MARKET_ALERTS_PUBLIC_ENDPOINTS)

    if config.cors.enabled:
        register_cors_middleware(fastapi_app, config)

    register_error_handlers(fastapi_app)

    return fastapi_app