Samra09/Physical_AI_Humanoid_Robotics
0
1from fastapi import FastAPI2from src.config import settings3from src.api.v1.query import router as query_router4from src.api.v1.session import router as session_router5from src.utils.logger import app_logger6from src.middleware.request_logging import request_response_logging_middleware7from src.middleware.rate_limit import rate_limit_middleware8 9app = FastAPI(10 title="RAG Chatbot API",11 description="API for RAG-based question answering on book content",12 version="1.0.0"13)14 15# Add middleware (order matters)16from fastapi.middleware.cors import CORSMiddleware17 18app.add_middleware(19 CORSMiddleware,20 allow_origins=["*"],21 allow_credentials=True,22 allow_methods=["*"],23 allow_headers=["*"],24)25 26app.middleware("http")(rate_limit_middleware)27app.middleware("http")(request_response_logging_middleware)28 29# Include API routes30app.include_router(query_router)31app.include_router(session_router)32 33@app.get("/")34async def root():35 app_logger.info("Root endpoint accessed.")36 return {"message": "RAG Chatbot API is running"}37 38@app.get("/health")39async def health_check():40 app_logger.info("Health check endpoint accessed")41 return {"status": "healthy", "environment": settings.app_env}42 43if __name__ == "__main__":44 import uvicorn45 app_logger.info("Starting RAG Chatbot API server")46 uvicorn.run(47 "main:app",48 host="0.0.0.0",49 port=8000,50 reload=settings.app_env == "development"51 )