Spaces:
Running
Running
File size: 2,092 Bytes
95da284 421e233 5b38336 bddc6a2 5b38336 bddc6a2 95da284 5b3c963 95da284 5b38336 d90d6a6 421e233 d90d6a6 89417a8 c0cf358 95da284 12cb4be 02970bf d90d6a6 4a900cc d90d6a6 6f1f886 02970bf d90d6a6 421e233 4a900cc 2b6d34d 4a900cc 89417a8 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
import herramientas
from io import BytesIO
import funciones, globales
from fastapi import FastAPI, Form, Request
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import StreamingResponse, FileResponse, JSONResponse
app = FastAPI()
# Nuevo endpoint para Health Check
@app.get("/health",
tags=["Health Check"],
description="Verifica el estado de salud de la API.",
summary="Health Check"
)
async def health_check():
"""
Este endpoint devuelve una respuesta 200 OK para indicar que la API está funcionando.
"""
return JSONResponse(content={"status": "ok"}, status_code=200)
@app.post("/echo-image/",
description="Test endpoint que recibe y regresa la misma imagen, para probar envío, recepción y problemas con api o red.",
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(request: Request, platillo: str = Form(...)):
print("Client host:", request.client.host)
herramientas.despliegaInfoCliente(request)
seconds_available = herramientas.obtenSegundosDisponibles()
print(herramientas.imprimeTimeNow())
if seconds_available > globales.work_cost:
print("Usando ZeroGPU 🪭.")
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") |