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}")