Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, Request | |
| import models, schemas | |
| from database.connection import engine | |
| from routers import user, holdings | |
| from slowapi import Limiter, _rate_limit_exceeded_handler | |
| from slowapi.util import get_remote_address | |
| models.Base.metadata.create_all(bind=engine) | |
| # Set up rate limiter based on IP | |
| limiter = Limiter(key_func=get_remote_address) | |
| # Create the FastAPI app | |
| app = FastAPI() | |
| app.state.limiter = limiter | |
| app.add_exception_handler(429, _rate_limit_exceeded_handler) | |
| # Limit to 15 requests per minute | |
| async def global_rate_limiter(request: Request, call_next): | |
| return await call_next(request) | |
| app.include_router(user.router) | |
| app.include_router(holdings.router) | |
| async def root(): | |
| return {"message": "Welcome to FinSight-AI"} | |