Spaces:
Running
Running
Timezone optimization
Browse files- app.py +0 -1
- conexion_firebase.py +1 -2
- funciones.py +2 -0
- herramientas.py +21 -18
- nextTest.py +0 -4
- requirements.txt +2 -1
app.py
CHANGED
@@ -34,7 +34,6 @@ async def genera_imagen(platillo: str = Form(...)):
|
|
34 |
|
35 |
#Obtengo los segundos disponibles de procesamiento para saber si tengo GPU disponible de la capa gratuita o me voy a método cobrado.
|
36 |
seconds_available = herramientas.obtenSegundosDisponibles()
|
37 |
-
print("Los segundos de procesamiento disponibles el día de hoy son: ", seconds_available)
|
38 |
print(herramientas.imprimeTime())
|
39 |
|
40 |
if seconds_available > globales.work_cost:
|
|
|
34 |
|
35 |
#Obtengo los segundos disponibles de procesamiento para saber si tengo GPU disponible de la capa gratuita o me voy a método cobrado.
|
36 |
seconds_available = herramientas.obtenSegundosDisponibles()
|
|
|
37 |
print(herramientas.imprimeTime())
|
38 |
|
39 |
if seconds_available > globales.work_cost:
|
conexion_firebase.py
CHANGED
@@ -28,8 +28,7 @@ def editaDato(coleccion, dato, info, contenido):
|
|
28 |
|
29 |
#Primero debemos definir la referencia al documento, o sea a la hoja de usuario.
|
30 |
doc_ref = db.collection(coleccion).document(dato)
|
31 |
-
|
32 |
-
|
33 |
doc_ref.update({
|
34 |
# 'quote': quote,
|
35 |
info: contenido,
|
|
|
28 |
|
29 |
#Primero debemos definir la referencia al documento, o sea a la hoja de usuario.
|
30 |
doc_ref = db.collection(coleccion).document(dato)
|
31 |
+
|
|
|
32 |
doc_ref.update({
|
33 |
# 'quote': quote,
|
34 |
info: contenido,
|
funciones.py
CHANGED
@@ -75,6 +75,8 @@ def genera_platillo_inference(platillo):
|
|
75 |
herramientas.modificaModeloActual(modelo)
|
76 |
return f"Error: {e}"
|
77 |
|
|
|
|
|
78 |
img_io = io.BytesIO()
|
79 |
image.save(img_io, "PNG")
|
80 |
img_io.seek(0)
|
|
|
75 |
herramientas.modificaModeloActual(modelo)
|
76 |
return f"Error: {e}"
|
77 |
|
78 |
+
#Cuando es GPU, debe de restar segundos disponibles de HF
|
79 |
+
herramientas.restaSegundosGPU(globales.work_cost)
|
80 |
img_io = io.BytesIO()
|
81 |
image.save(img_io, "PNG")
|
82 |
img_io.seek(0)
|
herramientas.py
CHANGED
@@ -3,6 +3,7 @@ from datetime import datetime
|
|
3 |
from datetime import datetime
|
4 |
import conexion_firebase
|
5 |
import globales
|
|
|
6 |
|
7 |
if globales.servidor == "moibe":
|
8 |
segundos = "segundos_dev"
|
@@ -15,14 +16,10 @@ def obtenUltimoTimestamp():
|
|
15 |
"""
|
16 |
Obtiene el último timestamp de renovación guardado.
|
17 |
"""
|
18 |
-
print("Estoy en obtenUltimoTimestamp")
|
19 |
-
print("La var last_timestamp es : ", last_timestamp)
|
20 |
resultado = conexion_firebase.obtenDato('nowme', 'huggingface', last_timestamp)
|
21 |
|
22 |
-
print(f"El resultado es: {resultado} y su tipo es {type(resultado)}... ")
|
23 |
return resultado
|
24 |
|
25 |
-
|
26 |
def esNuevoDia():
|
27 |
"""
|
28 |
Compara dos timestamps (en formato string ISO) y devuelve True si han
|
@@ -42,8 +39,6 @@ def esNuevoDia():
|
|
42 |
|
43 |
def obtenSegundosDisponibles():
|
44 |
|
45 |
-
print("Obteniendo segundos disponibles...")
|
46 |
-
|
47 |
if esDiaSiguiente() == True:
|
48 |
renuevaSegundosDisponibles()
|
49 |
renuevaModeloPrincipal()
|
@@ -58,7 +53,6 @@ def renuevaSegundosDisponibles():
|
|
58 |
conexion_firebase.editaDato('nowme', 'huggingface', segundos, quota_total)
|
59 |
renuevaTimestampActual()
|
60 |
|
61 |
-
|
62 |
def renuevaTimestampActual():
|
63 |
|
64 |
timestamp_actual = int(time.time())
|
@@ -71,15 +65,12 @@ def restaSegundosGPU(cuantos_segundos):
|
|
71 |
"""
|
72 |
|
73 |
segundos_disponibles = obtenSegundosDisponibles()
|
74 |
-
print("
|
75 |
|
76 |
# Restar los segundos
|
77 |
nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
|
78 |
-
print("La resta o los nuevos_segundos_disponibles son: ", nuevos_segundos_disponibles)
|
79 |
-
|
80 |
conexion_firebase.editaDato('nowme', 'huggingface', segundos, nuevos_segundos_disponibles)
|
81 |
|
82 |
-
|
83 |
def modificaModeloActual(nuevo_modelo):
|
84 |
"""
|
85 |
Actualiza el archivo archivos/modelo_actual.txt con el modelo funcional en caso de
|
@@ -90,7 +81,6 @@ def modificaModeloActual(nuevo_modelo):
|
|
90 |
conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', nuevo_modelo)
|
91 |
print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
|
92 |
|
93 |
-
|
94 |
def renuevaModeloPrincipal():
|
95 |
#Obten el modelo principal (default).
|
96 |
modelo_principal = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_principal')
|
@@ -98,10 +88,24 @@ def renuevaModeloPrincipal():
|
|
98 |
conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', modelo_principal)
|
99 |
|
100 |
def imprimeTime():
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
|
106 |
def esDiaSiguiente():
|
107 |
"""
|
@@ -132,5 +136,4 @@ def esDiaSiguiente():
|
|
132 |
print(f"Estoy comparando fecha registro {fecha_registro} con fecha actual {fecha_actual}...")
|
133 |
|
134 |
# Verificar si las fechas son diferentes
|
135 |
-
return fecha_actual > fecha_registro
|
136 |
-
|
|
|
3 |
from datetime import datetime
|
4 |
import conexion_firebase
|
5 |
import globales
|
6 |
+
import pytz
|
7 |
|
8 |
if globales.servidor == "moibe":
|
9 |
segundos = "segundos_dev"
|
|
|
16 |
"""
|
17 |
Obtiene el último timestamp de renovación guardado.
|
18 |
"""
|
|
|
|
|
19 |
resultado = conexion_firebase.obtenDato('nowme', 'huggingface', last_timestamp)
|
20 |
|
|
|
21 |
return resultado
|
22 |
|
|
|
23 |
def esNuevoDia():
|
24 |
"""
|
25 |
Compara dos timestamps (en formato string ISO) y devuelve True si han
|
|
|
39 |
|
40 |
def obtenSegundosDisponibles():
|
41 |
|
|
|
|
|
42 |
if esDiaSiguiente() == True:
|
43 |
renuevaSegundosDisponibles()
|
44 |
renuevaModeloPrincipal()
|
|
|
53 |
conexion_firebase.editaDato('nowme', 'huggingface', segundos, quota_total)
|
54 |
renuevaTimestampActual()
|
55 |
|
|
|
56 |
def renuevaTimestampActual():
|
57 |
|
58 |
timestamp_actual = int(time.time())
|
|
|
65 |
"""
|
66 |
|
67 |
segundos_disponibles = obtenSegundosDisponibles()
|
68 |
+
print("Segundos disponibles: ", segundos_disponibles)
|
69 |
|
70 |
# Restar los segundos
|
71 |
nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
|
|
|
|
|
72 |
conexion_firebase.editaDato('nowme', 'huggingface', segundos, nuevos_segundos_disponibles)
|
73 |
|
|
|
74 |
def modificaModeloActual(nuevo_modelo):
|
75 |
"""
|
76 |
Actualiza el archivo archivos/modelo_actual.txt con el modelo funcional en caso de
|
|
|
81 |
conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', nuevo_modelo)
|
82 |
print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
|
83 |
|
|
|
84 |
def renuevaModeloPrincipal():
|
85 |
#Obten el modelo principal (default).
|
86 |
modelo_principal = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_principal')
|
|
|
88 |
conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', modelo_principal)
|
89 |
|
90 |
def imprimeTime():
|
91 |
+
"""
|
92 |
+
Devuelve la fecha y hora actual en la zona horaria de la Ciudad de México (GMT-6).
|
93 |
+
"""
|
94 |
+
# 1. Definir la zona horaria de la Ciudad de México
|
95 |
+
# Puedes usar 'America/Mexico_City' para que pytz maneje el horario de verano automáticamente.
|
96 |
+
mexico_city_tz = pytz.timezone('America/Mexico_City')
|
97 |
+
|
98 |
+
# 2. Obtener la hora actual en UTC
|
99 |
+
utc_now = datetime.now(pytz.utc)
|
100 |
+
|
101 |
+
# 3. Convertir la hora UTC a la zona horaria deseada
|
102 |
+
mexico_city_now = utc_now.astimezone(mexico_city_tz)
|
103 |
+
|
104 |
+
# 4. Formatear la fecha y hora
|
105 |
+
# El formato que deseas es "YYYY-MM-DD HH:MM:SS"
|
106 |
+
formatted_time = mexico_city_now.strftime("%Y-%m-%d %H:%M:%S")
|
107 |
+
|
108 |
+
return formatted_time
|
109 |
|
110 |
def esDiaSiguiente():
|
111 |
"""
|
|
|
136 |
print(f"Estoy comparando fecha registro {fecha_registro} con fecha actual {fecha_actual}...")
|
137 |
|
138 |
# Verificar si las fechas son diferentes
|
139 |
+
return fecha_actual > fecha_registro
|
|
nextTest.py
DELETED
@@ -1,4 +0,0 @@
|
|
1 |
-
import herramientas
|
2 |
-
|
3 |
-
print("Resultado: ")
|
4 |
-
print(herramientas.esDiaSiguiente(1746553638))
|
|
|
|
|
|
|
|
|
|
requirements.txt
CHANGED
@@ -3,4 +3,5 @@ fastapi[standard]
|
|
3 |
huggingface_hub
|
4 |
gradio_client
|
5 |
Pillow
|
6 |
-
firebase_admin
|
|
|
|
3 |
huggingface_hub
|
4 |
gradio_client
|
5 |
Pillow
|
6 |
+
firebase_admin
|
7 |
+
pytz
|