File size: 1,424 Bytes
9174d0d
f35f208
9174d0d
 
 
cbb7bf7
2c44633
f35f208
9174d0d
b4e70da
 
 
9174d0d
b4e70da
 
 
cbb7bf7
9174d0d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
679b18c
 
9174d0d
 
 
 
 
 
 
 
b4e70da
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
51
52
53
54
55
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}")