Naveedtechlab's picture
Add full AI Native Textbook project source code
db7c1e8
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import logging
import sys
# Configure logging
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
handlers=[
logging.StreamHandler(sys.stdout)
]
)
logger = logging.getLogger(__name__)
# Import settings - this will validate environment variables on startup
from .config.settings import settings
app = FastAPI(
title="AI Backend with RAG + Authentication",
description="A scalable backend featuring authentication, RAG capabilities, and integration with external services",
version="1.0.0"
)
# Add CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # In production, replace with specific origins
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/")
async def root():
return {"message": "AI Backend with RAG + Authentication is running!"}
# Include all routes
from .routes import auth, search, history, documents, health
app.include_router(auth.router, prefix="/auth", tags=["authentication"])
app.include_router(search.router, prefix="/search", tags=["search"])
app.include_router(history.router, prefix="/history", tags=["history"])
app.include_router(documents.router, prefix="/documents", tags=["documents"])
app.include_router(health.router)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host=settings.server_host, port=settings.server_port)