Moibe's picture
Fix de globales para 24 horas
2c1c29c
raw
history blame
1.62 kB
from fastapi import FastAPI, Form
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import StreamingResponse, FileResponse
from io import BytesIO
import funciones, globales
import herramientas
app = FastAPI()
@app.post("/echo-image/")
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 antes los segundos disponibles para saber si tengo GPU disponible o me voy a inferencia.
seconds_available = herramientas.obtenSegundosDisponibles()
print("Los segundos disponibles obtenidos son: ", seconds_available)
print("Y el tipo del resultado es: ", type(seconds_available))
if seconds_available > globales.work_cost:
print("GPU...")
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("Inference...")
resultado = funciones.genera_platillo_inference(platillo)
print("El resultado de inference es: ", resultado)
print("Y su type es: ", type(resultado))
if type(resultado) is str:
return '{"Error":"500"}'
else:
return StreamingResponse(content=resultado, media_type="image/png")