File size: 1,652 Bytes
50d5c90 | 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 | from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
import uvicorn
from contextlib import asynccontextmanager
#from router import llamindex_router
from router import cnn_router
@asynccontextmanager
async def lifespan_manager(app: FastAPI):
"""
μλ² μμ μ λͺ¨λΈμ λ‘λνκ³ μ’
λ£ μ μ 리ν©λλ€.
"""
# 1. CNN λͺ¨λΈ λ‘λ (cnn_routerμ μμ)
await cnn_router.load_models()
# μλ²κ° μμ² μ²λ¦¬λ₯Ό μμνλλ‘ μ μ΄κΆμ λ겨μ€λλ€.
yield
# μλ² μ’
λ£ μ μ€νλλ μ 리(shutdown) λ‘μ§
cnn_router.shutdown_models()
# FastAPI μ ν리μΌμ΄μ
μ΄κΈ°ν
app = FastAPI(
title="EfficientNetB0 μ΄λ―Έμ§ λΆλ₯ API",
description="Fine-tuned EfficientNetB0 λͺ¨λΈμ μ¬μ©νμ¬ μ΄λ―Έμ§λ₯Ό μμΈ‘ν©λλ€.",
lifespan=lifespan_manager
)
# CORS μ€μ (λͺ¨λ λλ©μΈ νμ©)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
#app.include_router(llamindex_router.router, prefix="/llama_index")
app.include_router(cnn_router.router) # CNN λΌμ°ν° μΆκ°
# ν¬μ€ 체ν¬μ© κΈ°λ³Έ μλν¬μΈνΈ
@app.get("/", summary="API ν¬μ€ 체ν¬")
def read_root():
"""API μλ²κ° μ μμ μΌλ‘ μλνλμ§ νμΈν©λλ€."""
return {"message": "EfficientNetB0 Classification API is running successfully."}
if __name__ == "__main__":
# --reload μ΅μ
μ μΆκ°νμ¬ μ½λκ° λ³κ²½λ λλ§λ€ μλ μ¬μμλκ² μ€μ ν©λλ€.
uvicorn.run("app:app", host="0.0.0.0", port=8000, reload=True)
|