vn6295337's picture
Initial commit: Enterprise-AI-Gateway - Secure LLM gateway
bb0c63f
"""
Main application entry point for the Enterprise AI Gateway
"""
import os
import time
from dotenv import load_dotenv
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from slowapi import Limiter, _rate_limit_exceeded_handler
from slowapi.util import get_remote_address
from slowapi.errors import RateLimitExceeded
from .config import SERVICE_API_KEY, RATE_LIMIT, ALLOWED_ORIGINS
from .api.routes import router
# Load environment variables
load_dotenv()
# --- FastAPI App Setup ---
app = FastAPI(
title="Enterprise AI Gateway",
description="Enterprise-grade AI Gateway with security and fallback protocols.",
version="1.0.0",
docs_url="/docs",
redoc_url="/redoc"
)
# --- CORS & Rate Limiting ---
app.add_middleware(
CORSMiddleware,
allow_origins=ALLOWED_ORIGINS,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
limiter = Limiter(key_func=get_remote_address, default_limits=[RATE_LIMIT])
app.state.limiter = limiter
app.add_exception_handler(RateLimitExceeded, _rate_limit_exceeded_handler)
# --- Routes ---
app.include_router(router)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)