| |
| |
| from app.logger import get_logger, log |
| from fastapi import FastAPI, Request, HTTPException |
| from app.audio_processor import process_audio |
|
|
| app = FastAPI() |
|
|
| def get_logger_from_request(request: Request): |
| return request.app.state.logger |
|
|
| @app.on_event("startup") |
| def startup_event(): |
| app.state.logger = get_logger("API") |
| app.state.logger.info("Aplicação iniciada.") |
|
|
| @app.get("/") |
| def root(): |
| return {"status": "running"} |
|
|
| @app.post("/analyze") |
| def analyze(request: Request, data: dict): |
| logger = get_logger_from_request(request) |
|
|
| log("Iniciando analise de audio...", logger=logger) |
| |
| video_base64 = data.get("video_base64") |
| audio_base64 = data.get("audio_base64") |
|
|
| |
| log(f"video_base64 recebido: {'SIM' if video_base64 else 'NÃO'}", logger=logger) |
| log(f"audio_base64 recebido: {'SIM' if audio_base64 else 'NÃO'}", logger=logger) |
|
|
| |
| if not video_base64 and not audio_base64: |
| raise HTTPException( |
| status_code=400, |
| detail="É necessário enviar video_base64 ou audio_base64" |
| ) |
|
|
| try: |
| result = process_audio( |
| video_base64=video_base64, |
| audio_base64=audio_base64, |
| logger=logger |
| ) |
|
|
| log("Finalizado analise de audio", logger=logger) |
|
|
| return result |
|
|
| except Exception as e: |
| log(f"Erro no processamento: {str(e)}", logger=logger) |
|
|
| raise HTTPException( |
| status_code=500, |
| detail=f"Erro ao processar áudio: {str(e)}" |
| ) |