| """Main application entry point.""" |
|
|
| from fastapi import FastAPI |
| from src.middlewares.logging import configure_logging, get_logger |
| from src.middlewares.cors import add_cors_middleware |
| from src.middlewares.rate_limit import limiter, _rate_limit_exceeded_handler |
| from slowapi.errors import RateLimitExceeded |
| from src.api.v1.document import router as document_router |
| from src.api.v1.chat import router as chat_router |
| from src.api.v1.room import router as room_router |
| from src.api.v1.users import router as users_router |
| from src.api.v1.knowledge import router as knowledge_router |
| from src.db.postgres.init_db import init_db |
| import uvicorn |
|
|
| |
| configure_logging() |
| logger = get_logger("main") |
|
|
| |
| app = FastAPI( |
| title="DataEyond Agentic Service", |
| description="Multi-agent AI backend with RAG capabilities", |
| version="0.1.0" |
| ) |
|
|
| |
| add_cors_middleware(app) |
| app.state.limiter = limiter |
| app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler) |
|
|
| |
| app.include_router(users_router) |
| app.include_router(document_router) |
| app.include_router(knowledge_router) |
| app.include_router(room_router) |
| app.include_router(chat_router) |
|
|
|
|
| @app.on_event("startup") |
| async def startup_event(): |
| """Initialize database on startup.""" |
| logger.info("Starting application...") |
| await init_db() |
| logger.info("Database initialized") |
|
|
|
|
| @app.get("/") |
| async def root(): |
| """Root endpoint.""" |
| return { |
| "status": "ok", |
| "service": "DataEyond Agentic Service", |
| "version": "0.1.0" |
| } |
|
|
|
|
| @app.get("/health") |
| async def health_check(): |
| """Health check endpoint.""" |
| return {"status": "healthy"} |
|
|
|
|
| if __name__ == "__main__": |
| uvicorn.run( |
| "src.main:app", |
| host="0.0.0.0", |
| port=8000, |
| reload=True |
| ) |
|
|