File size: 1,203 Bytes
9174d0d
8856ca8
f35f208
9174d0d
 
 
cbb7bf7
f35f208
 
 
9174d0d
 
 
 
 
 
 
 
cbb7bf7
9174d0d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
679b18c
 
9174d0d
 
 
 
 
 
 
 
cbb7bf7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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()