Skip to content

Commit

Permalink
Diferentes opciones de selección de api
Browse files Browse the repository at this point in the history
  • Loading branch information
Moibe committed Dec 28, 2024
1 parent c37fdd8 commit df7bfaa
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 16 deletions.
24 changes: 18 additions & 6 deletions app.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,13 @@

def iniciar():
app_path = globales.app_path
main.queue(max_size=1)
main.launch(auth=autorizador.authenticate, root_path=app_path, server_port=globales.server_port)

def welcome(name):
print("Entré a Welcome!")
#raise gr.Error("Entré a Welcome!")
return f"Welcome to Gradio!"

#INTERFAZ
#Credit Related Elements
Expand All @@ -25,10 +31,16 @@ def iniciar():
main.load(sulkuFront.precarga, None, html_credits)

with gr.Row():
demo = gr.Interface(
fn=funciones.perform,
inputs=[input1, input2], #Agregar inputs manualmente.
outputs=[result, lbl_console, html_credits, btn_buy],
flagging_mode=globales.flag
)
try:
demo = gr.Interface(
fn=funciones.perform,
inputs=[input1, input2], #Agregar inputs manualmente.
outputs=[result, lbl_console, html_credits, btn_buy],
flagging_mode=globales.flag
)
except Exception as e:
print("Éste es el except de INTERFACE!!!!...")

result.change(welcome, result, lbl_console)

iniciar()
14 changes: 8 additions & 6 deletions funciones.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#PERFORM es la app INTERNA que llamará a la app externa.
def perform(input1, input2, request: gr.Request):

print("Entré a Perform...")

#Future: Maneja una excepción para el concurrent.futures._base.CancelledError
#Future: Que no se vea el resultado anterior al cargar el nuevo resultado! (aunque solo se ven los resultados propios.)

Expand All @@ -21,8 +23,11 @@ def perform(input1, input2, request: gr.Request):
autorizacion = sulkuPypi.authorize(tokens, globales.work)
if autorizacion is True:
try:
print("Entré al try de perform")
time.sleep(1)
resultado = mass(input1, input2)
except Exception as e:
except Exception as e:
print("Éste es el except de perform...")
info_window, resultado, html_credits = sulkuFront.aError(request.username, tokens, excepcion = tools.titulizaExcepDeAPI(e))
return resultado, info_window, html_credits, btn_buy
else:
Expand Down Expand Up @@ -65,20 +70,17 @@ def mass(input1, input2):

try:
result = client.predict(imagenSource, imagenDestiny, api_name="/predict")

#(Si llega aquí, debes debitar de la quota, incluso si detecto no-face o algo.)
if tipo_api == "gratis":
print("Como el tipo api fue gratis, si debitaremos la quota.")
sulkuPypi.updateQuota(globales.process_cost)
#No debitas la cuota si no era gratis, solo aplica para Zero.

#No debitas la cuota si no era gratis, solo aplica para Zero.

#result = splash_tools.desTuplaResultado(result)
return result

except Exception as e:
print("Hubo un errora al ejecutar MASS:", e)
#Errores al correr la API.
#La no detección de un rostro es mandado aquí?! Siempre?
mensaje = tools.titulizaExcepDeAPI(e)
return mensaje
Expand Down
14 changes: 11 additions & 3 deletions globales.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
import gradio as gr

#MAIN
version = "3.5.11"
version = "3.6.11"
env = "dev"
aplicacion = "astroblend-dev"

#Quota o Costo
api_zero = "Moibe/image-blend"
api_cost = "Moibe/image-blend"

#A o B
api_a = "Moibe/image-blend"
api_b = "Moibe/image-blend"

#Gratis o Costo
api_gratis = "Moibe/image-blend"
api_costo = "Moibe/image-blend"

same_api = True
process_cost = 0
#api = "Kwai-Kolors/Kolors-Character-With-Flux"
Expand All @@ -18,6 +28,4 @@
tema = gr.themes.Default()
flag = "auto"

sample_userfile = "gAAAAABmEZA4SLBC2YczouOrjIEi9WNCNGOIvyUcqBUnzxNsftXTdy54KaX9x8mAjFkABSI6FJrdZDQKk_5lpJOgJoMChxlniw=="

#Future: Put age to cookies.
23 changes: 22 additions & 1 deletion tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,32 @@ def theme_selector():

def eligeAPI():

api, tipo_api = eligeQuotaOCosto()
#api, tipo_api = eligeQuotaOCosto()
api, tipo_api = eligeAOB()

return api, tipo_api

#Los tipos de elección son diferentes porque tienen diferentes reglas de negocio.

def eligeGratisOCosto():
#Se eligirá en los casos en los que sin costo funciona bien como Astroblend pero por si se quiere mejorar hacia Costo.
#Por ahora funcionará exactamente igual que eligeAoB, en el futuro se basará en reglas de membresía.
pass

def eligeAOB():
#Se eligirá cuando se tenga un control sobre la cantidad en queu y se redirija hacia una segunda fuente alternativa.
# Lista con las opciones
apis = [globales.api_a, globales.api_b]

# Elegir un elemento aleatorio de la lista
api_elegida = random.choice(apis)

print("Print api elegida: ", api_elegida)

return api_elegida, "costo"

def eligeQuotaOCosto():
#Se eligirá en los casos en los que se use Zero, para extender las posibilidades de Quota y después usar Costo.

diferencia = sulkuPypi.getQuota() - globales.process_cost

Expand Down

0 comments on commit df7bfaa

Please sign in to comment.