Spaces:
Sleeping
Sleeping
| """ | |
| AI Image Filter Pipeline - FastAPI Backend | |
| ML νμ΅ λ°μ΄ν°μ μμ AI μμ± μ΄λ―Έμ§λ₯Ό νν°λ§νλ νμ΄νλΌμΈ | |
| """ | |
| from fastapi import FastAPI | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from contextlib import asynccontextmanager | |
| from app.api import routes | |
| async def lifespan(app: FastAPI): | |
| """μ± μμ/μ’ λ£ μ μ€νλλ λ‘μ§""" | |
| # Startup | |
| print("β Service initialized (Stateless)") | |
| yield | |
| # Shutdown | |
| print("π Shutting down...") | |
| app = FastAPI( | |
| title="AI Image Filter Pipeline", | |
| description=""" | |
| ## ML νμ΅ λ°μ΄ν° νμ§ κ²μ¦ νμ΄νλΌμΈ | |
| AI μμ± μ΄λ―Έμ§λ₯Ό νμ§νμ¬ νμ΅ λ°μ΄ν°μ μ νμ§μ 보μ₯ν©λλ€. | |
| ### 3-Layer κ²μ¦ μμ€ν | |
| - **Layer 1**: Hash Check - μ΄λ―Έμ§ ν΄μ κ³μ° (MD5, SHA256, Perceptual Hash) | |
| - **Layer 2**: Metadata Analysis - C2PA/EXIF λΆμ λ° AI λꡬ μκ·Έλμ² νμ§ | |
| - **Layer 3**: AI Detection - ML λͺ¨λΈ κΈ°λ° AI μμ± μ΄λ―Έμ§ νμ§ | |
| *Stateless μλΉμ€ - λ°μ΄ν°λ² μ΄μ€ λ―Έμ¬μ©* | |
| """, | |
| version="1.0.0", | |
| lifespan=lifespan | |
| ) | |
| # CORS μ€μ | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # λΌμ°ν° λ±λ‘ | |
| app.include_router(routes.router, prefix="/api/v1", tags=["Image Analysis"]) | |
| async def root(): | |
| return { | |
| "message": "AI Image Filter Pipeline API", | |
| "docs": "/docs", | |
| "health": "ok" | |
| } | |
| async def health_check(): | |
| return {"status": "healthy"} | |