import herramientas from io import BytesIO import funciones, globales from fastapi import FastAPI, Form from fastapi import FastAPI, File, UploadFile from fastapi.responses import StreamingResponse, FileResponse app = FastAPI() @app.post("/echo-image/", tags=["Test"], description="Descripción", summary="Summary" ) async def echo_image(image: UploadFile = File(...)): if not image.content_type.startswith("image/"): return {"error": "El archivo no es una imagen"} contents = await image.read() return StreamingResponse(BytesIO(contents), media_type=image.content_type) @app.post("/genera-imagen/") async def genera_imagen(platillo: str = Form(...)): #Obtengo los segundos disponibles de procesamiento para saber si tengo GPU disponible de la capa gratuita o me voy a método cobrado. seconds_available = herramientas.obtenSegundosDisponibles() print("Los segundos de procesamiento disponibles el día de hoy son: ", seconds_available) if seconds_available > globales.work_cost: print("Usando GPU (capa gratuita)...") resultado = funciones.genera_platillo_gpu(platillo) if "Error" in resultado: return resultado else: return FileResponse(resultado, media_type="image/png", filename="imagen.png") else: print("Usando Inference...") resultado = funciones.genera_platillo_inference(platillo) print("El resultado de inference es: ", resultado) if type(resultado) is str: return resultado else: return StreamingResponse(content=resultado, media_type="image/png")