Spaces:
Sleeping
Sleeping
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
|