Spaces:
Paused
Paused
import yaml | |
import sys | |
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 | |
def load_config(): | |
"""Load configuration from yaml file""" | |
with open("main/config.yaml", "r") as f: | |
return yaml.safe_load(f) | |
def create_app(): | |
config = load_config() | |
logger = setup_logger(config, "main") | |
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() |