Moibe commited on
Commit
30278b0
·
1 Parent(s): 45042e7

Medición de segundos de procesamiento para cada servidor.

Browse files
Files changed (4) hide show
  1. app.py +1 -1
  2. autenticacion.py +2 -2
  3. globales.py +1 -0
  4. herramientas.py +15 -29
app.py CHANGED
@@ -32,7 +32,7 @@ async def echo_image(image: UploadFile = File(...)):
32
  @app.post("/genera-imagen/")
33
  async def genera_imagen(platillo: str = Form(...)):
34
 
35
- seconds_available = herramientas.obtenSegundosDisponibles()
36
 
37
  print(herramientas.imprimeTimeNow())
38
 
 
32
  @app.post("/genera-imagen/")
33
  async def genera_imagen(platillo: str = Form(...)):
34
 
35
+ seconds_available = herramientas.obtenSegundosDisponibles() #Ahora los segundos disponible son independientes. Por server no hay diferencia, pero si por cuenta (y ahora tenemos 3 PRO), es importante que no quede ese distintivo en código para que la sincronización sea fácil y rápida. Local es Moibe, las demás su respectivo server. Todos manejados en bridges y en hf variables.
36
 
37
  print(herramientas.imprimeTimeNow())
38
 
autenticacion.py CHANGED
@@ -6,7 +6,7 @@ def defineAmbiente():
6
  print("Entorno Local...")
7
  import bridges
8
  llave = bridges.llave #Acceso a HF
9
- servidor = "moibe" #o Sosa Jhons, depende de donde deduciras el tiempo de gpu cuando pruebas en local.
10
  else:
11
  print("Entorno remoto listo...")
12
  llave = os.getenv("llave") #Acceso a HF
@@ -18,7 +18,7 @@ def local_check():
18
  hostname = socket.gethostname()
19
  #r-moibe-nowme
20
  print("Hostname: ", hostname)
21
- #Estoy usando el nombre de la app para identificar que estoy corriendola en HF.
22
  if "-nowme" in hostname:
23
  print("Ejecutando api en el servidor.")
24
  return False
 
6
  print("Entorno Local...")
7
  import bridges
8
  llave = bridges.llave #Acceso a HF
9
+ servidor = "sosa" #o Sosa Jhons, depende de donde deduciras el tiempo de gpu cuando pruebas en local.
10
  else:
11
  print("Entorno remoto listo...")
12
  llave = os.getenv("llave") #Acceso a HF
 
18
  hostname = socket.gethostname()
19
  #r-moibe-nowme
20
  print("Hostname: ", hostname)
21
+ #Estoy usando el nombre de la app para identificar que estoy corriendola en HF. #Ésto independiente al servidor en uso.
22
  if "-nowme" in hostname:
23
  print("Ejecutando api en el servidor.")
24
  return False
globales.py CHANGED
@@ -33,6 +33,7 @@ SERVER_NAMES = {
33
  #"nb_dr" : "NebulaDrive Tensor Server",
34
  #"pixelnet" : "PixelNet NPU Server",
35
  #"nsfw_core" : "NSFW-Core: Uncensored Server",
 
36
  #"nsfw_core_2" : "NSFW-Core: Uncensored Server 2",
37
  #"nsfw_core_3" : "NSFW-Core: Uncensored Server 3",
38
  #"nsfw_core_4" : "NSFW-Core: Uncensored Server 4",
 
33
  #"nb_dr" : "NebulaDrive Tensor Server",
34
  #"pixelnet" : "PixelNet NPU Server",
35
  #"nsfw_core" : "NSFW-Core: Uncensored Server",
36
+
37
  #"nsfw_core_2" : "NSFW-Core: Uncensored Server 2",
38
  #"nsfw_core_3" : "NSFW-Core: Uncensored Server 3",
39
  #"nsfw_core_4" : "NSFW-Core: Uncensored Server 4",
herramientas.py CHANGED
@@ -1,23 +1,18 @@
1
- from datetime import datetime
2
- from datetime import datetime
3
  import conexion_firebase
4
  import globales
5
  import pytz
6
- import time
7
  import random
 
8
 
9
- if globales.servidor == "moibe":
10
- segundos = "segundos_dev"
11
- last_timestamp = "last_timestamp_dev"
12
- else:
13
- segundos = "segundos_prod"
14
- last_timestamp = "last_timestamp_prod"
15
 
16
  def obtenUltimoTimestamp():
17
  """
18
  Obtiene el último timestamp de renovación guardado.
19
  """
20
- resultado = conexion_firebase.obtenDato('nowme', 'huggingface', last_timestamp)
21
  print("Obten último timestamp obtenido: ", resultado)
22
 
23
  return resultado
@@ -29,7 +24,7 @@ def obtenSegundosDisponibles():
29
  renuevaModeloPrincipal()
30
 
31
  #Finalmente obten los segundos disponibles después de las operaciones.
32
- return conexion_firebase.obtenDato('nowme', 'huggingface', segundos)
33
 
34
  def obtenSegundosDisponiblesInference():
35
 
@@ -38,20 +33,20 @@ def obtenSegundosDisponiblesInference():
38
  # renuevaModeloPrincipal()
39
 
40
  #Finalmente obten los segundos disponibles después de las operaciones.
41
- return conexion_firebase.obtenDato('nowme', 'huggingface', 'hfInference')
42
 
43
 
44
  def renuevaSegundosDisponibles():
45
 
46
  #Segundos de cuota total gratuita disponibles al momento.
47
- conexion_firebase.editaDato('nowme', 'huggingface', segundos, globales.quota)
48
  renuevaTimestampActual()
49
 
50
  def renuevaTimestampActual():
51
 
52
  timestamp_actual = imprimeTimeNowFixed16h()
53
  print("Ésto es el timestamp now de la renovación...: ", timestamp_actual)
54
- conexion_firebase.editaDato('nowme', 'huggingface', last_timestamp, timestamp_actual)
55
 
56
  def restaSegundosGPU(cuantos_segundos):
57
  """
@@ -65,7 +60,7 @@ def restaSegundosGPU(cuantos_segundos):
65
  # Restar los segundos
66
  nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
67
  print("Segundos disponibles ahora: ", nuevos_segundos_disponibles)
68
- conexion_firebase.editaDato('nowme', 'huggingface', segundos, nuevos_segundos_disponibles)
69
 
70
  def restaSegundosInference(cuantos_segundos):
71
  """
@@ -79,7 +74,7 @@ def restaSegundosInference(cuantos_segundos):
79
  # Restar los segundos
80
  nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
81
  print("Segundos disponibles ahora en restaSegundosInference: ", nuevos_segundos_disponibles)
82
- conexion_firebase.editaDato('nowme', 'huggingface', 'hfInference', nuevos_segundos_disponibles)
83
 
84
  def modificaModeloActual(nuevo_modelo):
85
  """
@@ -87,15 +82,15 @@ def modificaModeloActual(nuevo_modelo):
87
  problemas con el actual.
88
  """
89
 
90
- modelo_actual = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_actual')
91
- conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', nuevo_modelo)
92
  print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
93
 
94
  def renuevaModeloPrincipal():
95
  #Obten el modelo principal (default).
96
- modelo_principal = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_principal')
97
  #Asignalo como modelo actual.
98
- conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', modelo_principal)
99
 
100
  def imprimeTimeNow():
101
  """
@@ -145,15 +140,6 @@ def imprimeTimeNowFixed16h():
145
  )
146
  )
147
 
148
- # Nota sobre .localize() vs .astimezone():
149
- # .localize() se usa para tomar un datetime "naive" (sin zona horaria)
150
- # y asignarle una zona horaria.
151
- # .astimezone() se usa para convertir un datetime "timezone-aware"
152
- # de una zona horaria a otra.
153
- # Aquí creamos un datetime "naive" con la fecha correcta y la hora 16:00:00
154
- # y luego lo "localizamos" en la zona horaria de México.
155
-
156
-
157
  # 5. Formatear la fecha y hora
158
  formatted_time = fixed_time_dt.strftime("%Y-%m-%d %H:%M:%S")
159
 
 
 
 
1
  import conexion_firebase
2
  import globales
3
  import pytz
 
4
  import random
5
+ from datetime import datetime
6
 
7
+ servidor = globales.servidor
8
+
9
+ # segundos = server_configs[globales.servidor]["segundos_var"]
 
 
 
10
 
11
  def obtenUltimoTimestamp():
12
  """
13
  Obtiene el último timestamp de renovación guardado.
14
  """
15
+ resultado = conexion_firebase.obtenDato('nowme', servidor, 'timestamp')
16
  print("Obten último timestamp obtenido: ", resultado)
17
 
18
  return resultado
 
24
  renuevaModeloPrincipal()
25
 
26
  #Finalmente obten los segundos disponibles después de las operaciones.
27
+ return conexion_firebase.obtenDato('nowme', servidor, 'segundos')
28
 
29
  def obtenSegundosDisponiblesInference():
30
 
 
33
  # renuevaModeloPrincipal()
34
 
35
  #Finalmente obten los segundos disponibles después de las operaciones.
36
+ return conexion_firebase.obtenDato('nowme', servidor, 'hfInference')
37
 
38
 
39
  def renuevaSegundosDisponibles():
40
 
41
  #Segundos de cuota total gratuita disponibles al momento.
42
+ conexion_firebase.editaDato('nowme', servidor, 'segundos', globales.quota)
43
  renuevaTimestampActual()
44
 
45
  def renuevaTimestampActual():
46
 
47
  timestamp_actual = imprimeTimeNowFixed16h()
48
  print("Ésto es el timestamp now de la renovación...: ", timestamp_actual)
49
+ conexion_firebase.editaDato('nowme', servidor, 'timestamp', timestamp_actual)
50
 
51
  def restaSegundosGPU(cuantos_segundos):
52
  """
 
60
  # Restar los segundos
61
  nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
62
  print("Segundos disponibles ahora: ", nuevos_segundos_disponibles)
63
+ conexion_firebase.editaDato('nowme', servidor, 'segundos', nuevos_segundos_disponibles)
64
 
65
  def restaSegundosInference(cuantos_segundos):
66
  """
 
74
  # Restar los segundos
75
  nuevos_segundos_disponibles = segundos_disponibles - cuantos_segundos
76
  print("Segundos disponibles ahora en restaSegundosInference: ", nuevos_segundos_disponibles)
77
+ conexion_firebase.editaDato('nowme', servidor, 'hfInference', nuevos_segundos_disponibles)
78
 
79
  def modificaModeloActual(nuevo_modelo):
80
  """
 
82
  problemas con el actual.
83
  """
84
 
85
+ modelo_actual = conexion_firebase.obtenDato('nowme', servidor, 'modelo_actual')
86
+ conexion_firebase.editaDato('nowme', servidor, 'modelo_actual', nuevo_modelo)
87
  print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
88
 
89
  def renuevaModeloPrincipal():
90
  #Obten el modelo principal (default).
91
+ modelo_principal = conexion_firebase.obtenDato('nowme', servidor, 'modelo_principal')
92
  #Asignalo como modelo actual.
93
+ conexion_firebase.editaDato('nowme', servidor, 'modelo_actual', modelo_principal)
94
 
95
  def imprimeTimeNow():
96
  """
 
140
  )
141
  )
142
 
 
 
 
 
 
 
 
 
 
143
  # 5. Formatear la fecha y hora
144
  formatted_time = fixed_time_dt.strftime("%Y-%m-%d %H:%M:%S")
145