Spaces:
Paused
Paused
import yaml | |
from fastapi import FastAPI | |
from fastapi.middleware.cors import CORSMiddleware | |
from .routes import router, init_router | |
from .utils.logging import setup_logger | |
from .utils.validation import validate_hf | |
from .utils.helpers import load_config | |
config = load_config() | |
logger = setup_logger(config, "main") | |
def create_app(): | |
global config | |
global logger | |
validate_hf(setup_logger, config) | |
logger.info("Starting LLM API server") | |
app = FastAPI( | |
title="LLM API", | |
description="API for Large Language Model operations", | |
version=config["api"]["version"] | |
) | |
# Add CORS middleware | |
app.add_middleware( | |
CORSMiddleware, | |
allow_origins=config["api"]["cors"]["origins"], | |
allow_credentials=config["api"]["cors"]["credentials"], | |
allow_methods=["*"], | |
allow_headers=["*"], | |
) | |
# Initialize routes with config | |
init_router(config) | |
app.include_router(router, prefix=f"{config['api']['prefix']}/{config['api']['version']}") | |
logger.info("FastAPI application created successfully") | |
return app | |
app = create_app() | |
if __name__ == "__main__": | |
host = config["server"]["host"] | |
port = config["server"]["port"] | |
import uvicorn | |
uvicorn.run( | |
app, | |
host=host, | |
port=port, | |
log_level=config["logging"]["level"].lower() | |
) | |
logger.info(f"LLM API server started on {host}:{port}") |