Spaces:
Running
Running
Estadísticas Diarias y por Servidor
Browse files- conexion_firebase.py +12 -6
- 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 |
-
#
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
149 |
except Exception as e:
|
150 |
-
print(f"❌ Error al
|
|
|
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', '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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', '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|