|
import io |
|
import time |
|
import globales |
|
import random |
|
import herramientas |
|
import gradio_client |
|
import conexion_firebase |
|
from fastapi import HTTPException, status |
|
from huggingface_hub import InferenceClient |
|
|
|
|
|
servidor = globales.servidor |
|
|
|
def procesa_dni(platillo): |
|
|
|
print("Estoy en procesa DNI...") |
|
|
|
print("Y esto es contents: ", platillo) |
|
|
|
time.sleep(18) |
|
|
|
prompt = globales.previo + platillo |
|
print("Platillo enviado:", platillo) |
|
|
|
try: |
|
|
|
dict_espacios = conexion_firebase.obtenDato('nowme', servidor, 'espacios') |
|
|
|
espacios_habilitados = [ |
|
nombre for nombre, config in dict_espacios.items() |
|
if config.get("habilitado", False) |
|
] |
|
|
|
print(f"Espacios habilitados: {espacios_habilitados}") |
|
|
|
espacio_aleatorio_elegido = random.choice(espacios_habilitados) |
|
configuracion_espacio = dict_espacios[espacio_aleatorio_elegido] |
|
print(f"La configuraci贸n completa para '{espacio_aleatorio_elegido}' es: {configuracion_espacio}") |
|
|
|
client = gradio_client.Client(configuracion_espacio['ruta'], hf_token=globales.llave) |
|
|
|
|
|
result = client.predict( |
|
|
|
prompt=prompt, |
|
|
|
|
|
|
|
width=786, |
|
height=568, |
|
|
|
|
|
api_name=configuracion_espacio['api_name'] |
|
) |
|
|
|
|
|
herramientas.restaSegundosGPU(globales.work_cost) |
|
|
|
print("Platillo generado:", platillo) |
|
return result[0] |
|
|
|
except Exception as e: |
|
print("Excepci贸n: ", e) |
|
|
|
|
|
raise HTTPException( |
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, |
|
detail=e |
|
) |
|
|
|
def genera_platillo_gpu(platillo): |
|
|
|
prompt = globales.previo + platillo |
|
print("Platillo enviado:", platillo) |
|
|
|
try: |
|
|
|
dict_espacios = conexion_firebase.obtenDato('nowme', servidor, 'espacios') |
|
|
|
espacios_habilitados = [ |
|
nombre for nombre, config in dict_espacios.items() |
|
if config.get("habilitado", False) |
|
] |
|
|
|
print(f"Espacios habilitados: {espacios_habilitados}") |
|
|
|
espacio_aleatorio_elegido = random.choice(espacios_habilitados) |
|
configuracion_espacio = dict_espacios[espacio_aleatorio_elegido] |
|
print(f"La configuraci贸n completa para '{espacio_aleatorio_elegido}' es: {configuracion_espacio}") |
|
|
|
client = gradio_client.Client(configuracion_espacio['ruta'], hf_token=globales.llave) |
|
|
|
|
|
result = client.predict( |
|
|
|
prompt=prompt, |
|
|
|
|
|
|
|
width=786, |
|
height=568, |
|
|
|
|
|
api_name=configuracion_espacio['api_name'] |
|
) |
|
|
|
|
|
herramientas.restaSegundosGPU(globales.work_cost) |
|
|
|
print("Platillo generado:", platillo) |
|
return result[0] |
|
|
|
except Exception as e: |
|
print("Excepci贸n: ", e) |
|
|
|
|
|
raise HTTPException( |
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, |
|
detail=e |
|
) |
|
|
|
def genera_platillo_inference(platillo): |
|
|
|
dict_modelos = conexion_firebase.obtenDato('nowme', servidor, 'modelos') |
|
|
|
modelos_habilitados = [ |
|
nombre for nombre, config in dict_modelos.items() |
|
if config.get("habilitado", False) |
|
] |
|
|
|
print(f"Modelos habilitados: {modelos_habilitados}") |
|
|
|
modelo_aleatorio_elegido = random.choice(modelos_habilitados) |
|
configuracion_modelo = dict_modelos[modelo_aleatorio_elegido] |
|
print(f"La configuraci贸n completa para '{modelo_aleatorio_elegido}' es: {configuracion_modelo}") |
|
|
|
|
|
creditos_restantes_inference = conexion_firebase.obtenDato('nowme', servidor, 'inferencias') |
|
|
|
|
|
if creditos_restantes_inference > 0: |
|
provedor_seleccionado = globales.proveedor |
|
else: |
|
provedor_seleccionado = globales.proveedor_back |
|
|
|
prompt = globales.previo + platillo |
|
print("Platillo enviado:", platillo) |
|
|
|
client = InferenceClient( |
|
provider= provedor_seleccionado, |
|
model=configuracion_modelo['ruta'], |
|
api_key=globales.llave |
|
) |
|
|
|
print("Cree cliente: ", client) |
|
time.sleep(0) |
|
|
|
try: |
|
image = client.text_to_image( |
|
prompt, |
|
|
|
width=784, |
|
height=560, |
|
num_inference_steps=16 |
|
) |
|
|
|
|
|
herramientas.restaSegundosInference(globales.inference_cost) |
|
|
|
except Exception as e: |
|
print("Excepci贸n: ", e) |
|
if "Gateway Time-out" in str(e): |
|
print("GATEWAY TIME-OUT 馃拃") |
|
|
|
|
|
|
|
error_impreso = f"Error: {e}" |
|
print(error_impreso) |
|
raise HTTPException( |
|
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, |
|
) |
|
|
|
img_io = io.BytesIO() |
|
image.save(img_io, "PNG") |
|
img_io.seek(0) |
|
print("Platillo generado:", platillo) |
|
return img_io |