Moibe commited on
Commit
0a39dde
·
1 Parent(s): 6b995ee

Estadísticas Diarias y por Servidor

Browse files
Files changed (2) hide show
  1. conexion_firebase.py +12 -6
  2. funciones.py +27 -8
conexion_firebase.py CHANGED
@@ -131,6 +131,8 @@ def buscar_log_por_prompt(valor_prompt):
131
  def incrementar_campo_numerico(collection_name, document_id, field_name, amount=1):
132
  """
133
  Incrementa un campo numérico en un documento de Firestore de forma atómica.
 
 
134
 
135
  Args:
136
  collection_name (str): El nombre de la colección.
@@ -141,10 +143,14 @@ def incrementar_campo_numerico(collection_name, document_id, field_name, amount=
141
  doc_ref = db.collection(collection_name).document(document_id)
142
 
143
  try:
144
- # Usa firestore.Increment(cantidad) para un incremento atómico
145
- doc_ref.update({
146
- field_name: firestore.Increment(amount)
147
- })
148
- print(f"✔️ Campo '{field_name}' en el documento '{document_id}' incrementado en {amount}.")
 
 
 
 
149
  except Exception as e:
150
- print(f"❌ Error al incrementar campo '{field_name}' en '{document_id}': {e}")
 
131
  def incrementar_campo_numerico(collection_name, document_id, field_name, amount=1):
132
  """
133
  Incrementa un campo numérico en un documento de Firestore de forma atómica.
134
+ Si el documento no existe, lo crea e inicializa el campo con el 'amount'.
135
+ Si el campo no existe en un documento existente, lo inicializa y aplica el incremento.
136
 
137
  Args:
138
  collection_name (str): El nombre de la colección.
 
143
  doc_ref = db.collection(collection_name).document(document_id)
144
 
145
  try:
146
+ # Usamos .set() con merge=True para comportamiento de "upsert".
147
+ # Si el documento no existe, lo crea.
148
+ # Si el campo no existe, lo crea e inicializa con 'amount'.
149
+ # Si el campo ya existe, lo incrementa con 'amount'.
150
+ doc_ref.set(
151
+ {field_name: firestore.Increment(amount)},
152
+ merge=True # Esta es la clave para que se cree si no existe y no sobrescriba otros campos
153
+ )
154
+ print(f"✔️ Campo '{field_name}' en el documento '{document_id}' actualizado/creado e incrementado en {amount}.")
155
  except Exception as e:
156
+ print(f"❌ Error al operar en el campo '{field_name}' del documento '{document_id}': {e}")
funciones.py CHANGED
@@ -1,10 +1,10 @@
1
  import io
2
- import time
3
- import globales
4
  import random
 
5
  import herramientas
6
  import gradio_client
7
  import conexion_firebase
 
8
  from fastapi import HTTPException, status
9
  from huggingface_hub import InferenceClient
10
 
@@ -47,9 +47,20 @@ def genera_platillo_gpu(platillo):
47
 
48
  print("Platillo generado:", platillo)
49
  conexion_firebase.registraLog(servidor, platillo, espacio_aleatorio_elegido, 42)
 
 
50
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_totales', amount=1)
51
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'endpoint-' + servicio, amount=1)
52
- conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_gpu', amount=1)
 
 
 
 
 
 
 
 
 
53
 
54
  return result[0]
55
 
@@ -69,13 +80,11 @@ def genera_platillo_inference(platillo):
69
  ]
70
 
71
  print(f"Modelos habilitados: {modelos_habilitados}")
72
-
73
  modelo_aleatorio_elegido = random.choice(modelos_habilitados)
74
  configuracion_modelo = dict_modelos[modelo_aleatorio_elegido]
75
 
76
  creditos_restantes_inference = conexion_firebase.obtenDato('nowme', servidor, 'inferencias')
77
 
78
- #print("Los créditos restantes de hf-inference que tienes son: ", creditos_restantes_inference)
79
  if creditos_restantes_inference > 0:
80
  provedor_seleccionado = globales.proveedor
81
  else:
@@ -98,9 +107,8 @@ def genera_platillo_inference(platillo):
98
  height=560, #568
99
  num_inference_steps=12,
100
  seed=42
101
- )
102
 
103
- #Detenido momentaneamente por cambio a firebase.
104
  herramientas.restaSegundosInference(globales.inference_cost)
105
 
106
  except Exception as e:
@@ -119,7 +127,18 @@ def genera_platillo_inference(platillo):
119
  img_io.seek(0)
120
  print("Platillo generado:", platillo)
121
  conexion_firebase.registraLog(servidor, platillo, modelo_aleatorio_elegido, 42)
 
122
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_totales', amount=1)
123
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'endpoint-' + servicio, amount=1)
124
- conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_inference', amount=1)
 
 
 
 
 
 
 
 
 
 
125
  return img_io
 
1
  import io
 
 
2
  import random
3
+ import globales
4
  import herramientas
5
  import gradio_client
6
  import conexion_firebase
7
+ from datetime import datetime
8
  from fastapi import HTTPException, status
9
  from huggingface_hub import InferenceClient
10
 
 
47
 
48
  print("Platillo generado:", platillo)
49
  conexion_firebase.registraLog(servidor, platillo, espacio_aleatorio_elegido, 42)
50
+
51
+ #Generales
52
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_totales', amount=1)
53
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'endpoint-' + servicio, amount=1)
54
+ conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'gpu-totales', amount=1)
55
+ conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'gpu-' + servicio, amount=1)
56
+ #Día a Día
57
+ now = datetime.now()
58
+ document_id_fecha_hora = now.strftime("%Y-%m-%d")
59
+ nombre_doc = servidor + " - " + document_id_fecha_hora
60
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'imagenes_totales', amount=1)
61
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'endpoint-' + servicio, amount=1)
62
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'gpu-totales', amount=1)
63
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'gpu-' + servicio, amount=1)
64
 
65
  return result[0]
66
 
 
80
  ]
81
 
82
  print(f"Modelos habilitados: {modelos_habilitados}")
 
83
  modelo_aleatorio_elegido = random.choice(modelos_habilitados)
84
  configuracion_modelo = dict_modelos[modelo_aleatorio_elegido]
85
 
86
  creditos_restantes_inference = conexion_firebase.obtenDato('nowme', servidor, 'inferencias')
87
 
 
88
  if creditos_restantes_inference > 0:
89
  provedor_seleccionado = globales.proveedor
90
  else:
 
107
  height=560, #568
108
  num_inference_steps=12,
109
  seed=42
110
+ )
111
 
 
112
  herramientas.restaSegundosInference(globales.inference_cost)
113
 
114
  except Exception as e:
 
127
  img_io.seek(0)
128
  print("Platillo generado:", platillo)
129
  conexion_firebase.registraLog(servidor, platillo, modelo_aleatorio_elegido, 42)
130
+ #Generales
131
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'imagenes_totales', amount=1)
132
  conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'endpoint-' + servicio, amount=1)
133
+ conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'inference-totales', amount=1)
134
+ conexion_firebase.incrementar_campo_numerico('estadisticas', 'imagenes', 'inference-' + servicio, amount=1)
135
+ #Día a Día
136
+ now = datetime.now()
137
+ document_id_fecha_hora = now.strftime("%Y-%m-%d")
138
+ nombre_doc = servidor + " - " + document_id_fecha_hora
139
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'imagenes_totales', amount=1)
140
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'endpoint-' + servicio, amount=1)
141
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'inference-totales', amount=1)
142
+ conexion_firebase.incrementar_campo_numerico('estadisticas', nombre_doc, 'inference-' + servicio, amount=1)
143
+
144
  return img_io