# audio_service/main.py # AUDIO SERVICE (Whisper + VADER) 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 SEGURO (não quebra e não imprime base64 gigante) 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) # 🔥 VALIDAÇÃO CORRETA (evita 500) 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)}" )