CoolFace
Apppublic

DataEyond/Agentic-Service-Data-Eyond

sourceHugging Faceupdated 5mo agoView on Hugging Face
0likes
main.py73 linesDownload Raw Back to root
1"""Main application entry point."""2 3from fastapi import FastAPI4from src.middlewares.logging import configure_logging, get_logger5from src.middlewares.cors import add_cors_middleware6from src.middlewares.rate_limit import limiter, _rate_limit_exceeded_handler7from slowapi.errors import RateLimitExceeded8from src.api.v1.document import router as document_router9from src.api.v1.chat import router as chat_router10from src.api.v1.room import router as room_router11from src.api.v1.users import router as users_router12from src.api.v1.knowledge import router as knowledge_router13from src.api.v1.db_client import router as db_client_router14from src.db.postgres.init_db import init_db15import uvicorn16 17# Configure logging18configure_logging()19logger = get_logger("main")20 21# Create FastAPI app22app = FastAPI(23    title="DataEyond Agentic Service",24    description="Multi-agent AI backend with RAG capabilities",25    version="0.1.0"26)27 28# Add middleware29add_cors_middleware(app)30app.state.limiter = limiter31app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)32 33# Include routers34app.include_router(users_router)35app.include_router(document_router)36app.include_router(knowledge_router)37app.include_router(room_router)38app.include_router(chat_router)39app.include_router(db_client_router)40 41 42@app.on_event("startup")43async def startup_event():44    """Initialize database on startup."""45    logger.info("Starting application...")46    await init_db()47    logger.info("Database initialized")48 49 50@app.get("/")51async def root():52    """Root endpoint."""53    return {54        "status": "ok",55        "service": "DataEyond Agentic Service",56        "version": "0.1.0"57    }58 59 60@app.get("/health")61async def health_check():62    """Health check endpoint."""63    return {"status": "healthy"}64 65 66if __name__ == "__main__":67    uvicorn.run(68        "main:app",69        host="0.0.0.0",70        port=7860,71        reload=True72    )73