DataEyond/Agentic-Service-Data-Eyond
0
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 