fariedalfarizi's picture
Add profanity detection feature with 150+ Indonesian/English words
c7e434a
raw
history blame
1.29 kB
"""
FastAPI Application
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.config import settings
from app.api.routes import router
from app.core.storage import ensure_upload_dir
# Create FastAPI app
app = FastAPI(
title=settings.APP_NAME,
version=settings.VERSION,
description="Audio Analysis API for Public Speaking Assessment"
)
# CORS
app.add_middleware(
CORSMiddleware,
allow_origins=settings.CORS_ORIGINS,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routers
app.include_router(router, prefix="/api/v1", tags=["audio-analysis"])
# Startup event
@app.on_event("startup")
async def startup_event():
"""Initialize on startup"""
print(f"πŸš€ Starting {settings.APP_NAME} v{settings.VERSION}")
ensure_upload_dir()
print(f"βœ… Upload directory ready: {settings.UPLOAD_DIR}")
# Root endpoint
@app.get("/")
async def root():
"""Root endpoint"""
return {
"app": settings.APP_NAME,
"version": settings.VERSION,
"docs": "/docs",
"health": "/api/v1/health"
}
if __name__ == "__main__":
import uvicorn
uvicorn.run(
"app.main:app",
host="0.0.0.0",
port=8000,
reload=settings.DEBUG
)