Moibe commited on
Commit
f7095e2
·
1 Parent(s): 0cc407f

Enviroment Firebase

Browse files
archivos/last_timestamp.txt CHANGED
@@ -1 +1 @@
1
- 1747155744
 
1
+ 1747156891
autenticacion.py ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import socket
3
+ from firebase_admin import credentials
4
+
5
+ def obtenAccesoHF():
6
+ if local_check():
7
+ print("Estoy en entorno Local...")
8
+ import bridges
9
+ #Acceso a HF
10
+ llave = bridges.llave
11
+ #Acceso a Firebase
12
+ # Use the application default credentials.
13
+ firebase_cred = credentials.Certificate('config.json')
14
+ else:
15
+ print("Estoy en entorno Remoto...")
16
+ #Acceso a HF
17
+ llave = os.getenv("llave")
18
+ firebase_cred = os.getenv("firebase_cred")
19
+ return llave, firebase_cred
20
+
21
+ def local_check():
22
+
23
+ hostname = socket.gethostname()
24
+ #r-moibe-nowme
25
+ print("Dentro de local_check... , el hostname es: ", hostname)
26
+
27
+ #Estoy usando el nombre de la app para identificar que estoy corriendola en HF.
28
+ if "-nowme" in hostname:
29
+ print("Ejecutando api en el servidor.")
30
+ return False
31
+ else:
32
+ print("Ejecutando api en local.")
33
+ return True
conexion_firebase.py CHANGED
@@ -1,12 +1,12 @@
1
  import firebase_admin
2
- from firebase_admin import credentials
3
  from firebase_admin import firestore
4
-
5
  from firebase_admin import auth
 
 
 
 
6
 
7
- # Use the application default credentials.
8
- cred = credentials.Certificate('config.json')
9
- firebase_admin.initialize_app(cred)
10
 
11
  db = firestore.client()
12
  #dato es el dato que traes como el nombre del user.
 
1
  import firebase_admin
 
2
  from firebase_admin import firestore
 
3
  from firebase_admin import auth
4
+ import globales
5
+
6
+ print("Esto es globales, firebase cred:")
7
+ print(globales)
8
 
9
+ firebase_admin.initialize_app(globales.firebase_cred)
 
 
10
 
11
  db = firestore.client()
12
  #dato es el dato que traes como el nombre del user.
funciones.py CHANGED
@@ -7,8 +7,7 @@ from huggingface_hub import InferenceClient
7
  def genera_platillo_gpu(platillo):
8
 
9
  prompt = globales.previo + platillo
10
- print("Platillo enviado:", platillo)
11
-
12
 
13
  kwargs = {
14
  "prompt": prompt,
 
7
  def genera_platillo_gpu(platillo):
8
 
9
  prompt = globales.previo + platillo
10
+ print("Platillo enviado:", platillo)
 
11
 
12
  kwargs = {
13
  "prompt": prompt,
globales.py CHANGED
@@ -1,7 +1,8 @@
 
1
  import herramientas
2
 
3
  previo = "Una fotografía de un plato blanco con "
4
- llave = herramientas.obtenAccesoHF()
5
 
6
  espacio = "black-forest-labs/FLUX.1-schnell"
7
  #espacio = "black-forest-labs/FLUX.1-dev"
 
1
+ import autenticacion
2
  import herramientas
3
 
4
  previo = "Una fotografía de un plato blanco con "
5
+ llave, firebase_cred = autenticacion.obtenAccesoHF()
6
 
7
  espacio = "black-forest-labs/FLUX.1-schnell"
8
  #espacio = "black-forest-labs/FLUX.1-dev"
herramientas.py CHANGED
@@ -1,59 +1,29 @@
1
- import os
2
  import time
3
- import socket
4
  from datetime import datetime
5
  from datetime import datetime, date, timedelta
6
  import conexion_firebase
7
 
8
- def obtenAccesoHF():
9
- if local_check():
10
- print("Estoy en entorno Local...")
11
- import bridges
12
- #Acceso a HF
13
- llave = bridges.llave
14
- #Acceso a Firebase
15
- else:
16
- print("Estoy en entorno Remoto...")
17
- #Acceso a HF
18
- llave = os.getenv("llave")
19
- return llave
20
-
21
- def local_check():
22
-
23
- hostname = socket.gethostname()
24
- #r-moibe-nowme
25
- print("Dentro de local_check... , el hostname es: ", hostname)
26
-
27
- #Estoy usando el nombre de la app para identificar que estoy corriendola en HF.
28
- if "-nowme" in hostname:
29
- print("Ejecutando api en el servidor.")
30
- return False
31
- else:
32
- print("Ejecutando api en local.")
33
- return True
34
-
35
  def obtenUltimoTimestamp():
36
  """
37
  Obtiene el último timestamp de renovación guardado.
38
  """
39
 
40
  resultado = conexion_firebase.obtenDato('nowme', 'huggingface', 'last_timestamp')
41
- print("El last_timestamp de firebase es: ", resultado)
42
-
43
- try:
44
- archivo_ruta = "archivos/last_timestamp.txt"
45
- with open(archivo_ruta, 'r') as archivo:
46
- contenido = archivo.readline().strip()
47
- ultimo_timestamp = int(contenido)
48
- return ultimo_timestamp
49
- except FileNotFoundError:
50
- print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
51
- return
52
- except ValueError:
53
- print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
54
- return
55
-
56
-
57
 
58
  def esNuevoDia():
59
  """
@@ -76,54 +46,45 @@ def obtenSegundosDisponibles():
76
 
77
  if esDiaSiguiente() == True:
78
  renuevaSegundosDisponibles()
 
79
 
80
- try:
81
- archivo_ruta = "archivos/seconds_available.txt"
82
- # Leer el número actual de segundos disponibles
83
- with open(archivo_ruta, 'r') as archivo:
84
- contenido = archivo.readline().strip()
85
- segundos_disponibles = int(contenido)
86
- return segundos_disponibles
87
- except FileNotFoundError:
88
- print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
89
- return
90
- except ValueError:
91
- print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
92
- return
 
 
 
93
 
94
  def renuevaSegundosDisponibles():
95
 
96
  #Segundos de cuota total gratuita disponibles al momento.
97
  quota_total = 300
98
-
99
- print("Estoy en renuevaSegundosDisponibles...")
100
-
101
- archivo_ruta = "archivos/seconds_available.txt"
102
 
103
  # Guardar el nuevo número en el archivo
104
- try:
105
- with open(archivo_ruta, 'w') as archivo:
106
- archivo.write(str(quota_total))
107
- print(f"Se renovaron los {quota_total} segundos disponibles.")
108
- renuevaTimestampActual()
109
- renuevaModeloPrincipal()
110
- except Exception as e:
111
- print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
112
 
113
  def renuevaTimestampActual():
114
 
115
- print("Estoy en renuevatimestmap actual...")
116
- archivo_ruta = "archivos/last_timestamp.txt"
117
-
118
  timestamp_actual = int(time.time())
119
-
120
- # Guardar el nuevo número en el archivo
121
- try:
122
- with open(archivo_ruta, 'w') as archivo:
123
- archivo.write(str(timestamp_actual))
124
- print(f"Se renovó por el timestamp de éste momento.")
125
- except Exception as e:
126
- print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
127
 
128
  def restaSegundosGPU(segundos):
129
  """
@@ -132,20 +93,20 @@ def restaSegundosGPU(segundos):
132
  """
133
 
134
  print("Estoy en resta segundos...")
135
- archivo_ruta = "archivos/seconds_available.txt"
136
  segundos_disponibles = obtenSegundosDisponibles()
137
 
138
  # Restar los segundos
139
  nuevos_segundos_disponibles = segundos_disponibles - segundos
 
140
 
141
- # Guardar el nuevo número en el archivo
142
- try:
143
- with open(archivo_ruta, 'w') as archivo:
144
- archivo.write(str(nuevos_segundos_disponibles))
145
- print(f"Se restaron {segundos} segundos. Ahora quedan {nuevos_segundos_disponibles} segundos disponibles.")
146
- except Exception as e:
147
- print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
148
-
149
 
150
  def modificaModeloActual(nuevo_modelo):
151
  """
@@ -153,77 +114,29 @@ def modificaModeloActual(nuevo_modelo):
153
  problemas con el actual.
154
  """
155
 
156
- print("Estoy en actualiza modelo actual...")
157
- archivo_ruta = "archivos/modelo_actual.txt"
158
- modelo_actual = obtenModeloActual()
159
-
160
 
161
  # Guardar el nuevo número en el archivo
162
- try:
163
- with open(archivo_ruta, 'w') as archivo:
164
- archivo.write(nuevo_modelo)
165
- print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
166
- except Exception as e:
167
- print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
168
-
169
- def obtenModeloActual():
170
- """
171
- Obtiene el último timestamp de renovación guardado.
172
- """
173
-
174
- archivo_ruta = "archivos/modelo_actual.txt"
175
-
176
- try:
177
- with open(archivo_ruta, 'r') as archivo:
178
- contenido = archivo.readline().strip()
179
- modelo_actual = str(contenido)
180
- return modelo_actual
181
- except FileNotFoundError:
182
- print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
183
- return
184
- except ValueError:
185
- print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
186
- return
187
-
188
- def obtenModeloPrincipal():
189
- """
190
- Obtiene el modelo principal (default).
191
- """
192
-
193
- archivo_ruta = "archivos/modelo_principal.txt"
194
-
195
- try:
196
- with open(archivo_ruta, 'r') as archivo:
197
- contenido = archivo.readline().strip()
198
- modelo_principal = str(contenido)
199
- return modelo_principal
200
- except FileNotFoundError:
201
- print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
202
- return
203
- except ValueError:
204
- print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
205
- return
206
-
207
 
208
  def renuevaModeloPrincipal():
209
-
210
- archivo_ruta = "archivos/modelo_actual.txt"
211
- modelo_actual = obtenModeloActual()
212
- modelo_principal = obtenModeloPrincipal()
213
-
214
- # Guardar el nuevo número en el archivo
215
- try:
216
- with open(archivo_ruta, 'w') as archivo:
217
- archivo.write(modelo_principal)
218
- print(f"Se actualizó el modelo principal: {modelo_actual} por {modelo_principal}.")
219
- except Exception as e:
220
- print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
221
 
222
  def imprimeTime():
223
  timestamp_actual = int(time.time())
224
  fecha_hora = datetime.fromtimestamp(timestamp_actual)
225
  fecha_hora_legible = fecha_hora.strftime('%Y-%m-%d %H:%M:%S')
226
-
227
  return fecha_hora_legible
228
 
229
  def esDiaSiguiente():
 
 
1
  import time
 
2
  from datetime import datetime
3
  from datetime import datetime, date, timedelta
4
  import conexion_firebase
5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  def obtenUltimoTimestamp():
7
  """
8
  Obtiene el último timestamp de renovación guardado.
9
  """
10
 
11
  resultado = conexion_firebase.obtenDato('nowme', 'huggingface', 'last_timestamp')
12
+ return resultado
13
+
14
+ #Antes se hacía con archivos estáticos.
15
+ # try:
16
+ # archivo_ruta = "archivos/last_timestamp.txt"
17
+ # with open(archivo_ruta, 'r') as archivo:
18
+ # contenido = archivo.readline().strip()
19
+ # ultimo_timestamp = int(contenido)
20
+ # return ultimo_timestamp
21
+ # except FileNotFoundError:
22
+ # print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
23
+ # return
24
+ # except ValueError:
25
+ # print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
26
+ # return
 
27
 
28
  def esNuevoDia():
29
  """
 
46
 
47
  if esDiaSiguiente() == True:
48
  renuevaSegundosDisponibles()
49
+ renuevaModeloPrincipal()
50
 
51
+ #Finalmente obten los segundos disponibles después de las operaciones.
52
+ return conexion_firebase.obtenDato('nowme', 'huggingface', 'segundos')
53
+
54
+ # try:
55
+ # archivo_ruta = "archivos/seconds_available.txt"
56
+ # # Leer el número actual de segundos disponibles
57
+ # with open(archivo_ruta, 'r') as archivo:
58
+ # contenido = archivo.readline().strip()
59
+ # segundos_disponibles = int(contenido)
60
+ # return segundos_disponibles
61
+ # except FileNotFoundError:
62
+ # print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
63
+ # return
64
+ # except ValueError:
65
+ # print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
66
+ # return
67
 
68
  def renuevaSegundosDisponibles():
69
 
70
  #Segundos de cuota total gratuita disponibles al momento.
71
  quota_total = 300
72
+ conexion_firebase.editaDato('nowme', 'huggingface', 'segundos', quota_total)
73
+ renuevaTimestampActual()
 
 
74
 
75
  # Guardar el nuevo número en el archivo
76
+ # try:
77
+ # archivo_ruta = "archivos/seconds_available.txt"
78
+ # with open(archivo_ruta, 'w') as archivo:
79
+ # archivo.write(str(quota_total))
80
+ # print(f"Se renovaron los {quota_total} segundos disponibles.")
81
+ # except Exception as e:
82
+ # print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
 
83
 
84
  def renuevaTimestampActual():
85
 
 
 
 
86
  timestamp_actual = int(time.time())
87
+ conexion_firebase.editaDato('nowme', 'huggingface', 'last_timestamp', timestamp_actual)
 
 
 
 
 
 
 
88
 
89
  def restaSegundosGPU(segundos):
90
  """
 
93
  """
94
 
95
  print("Estoy en resta segundos...")
 
96
  segundos_disponibles = obtenSegundosDisponibles()
97
 
98
  # Restar los segundos
99
  nuevos_segundos_disponibles = segundos_disponibles - segundos
100
+ conexion_firebase.editaDato('nowme', 'huggingface', 'segundos', nuevos_segundos_disponibles)
101
 
102
+ # # Guardar el nuevo número en el archivo
103
+ # try:
104
+ # archivo_ruta = "archivos/seconds_available.txt"
105
+ # with open(archivo_ruta, 'w') as archivo:
106
+ # archivo.write(str(nuevos_segundos_disponibles))
107
+ # print(f"Se restaron {segundos} segundos. Ahora quedan {nuevos_segundos_disponibles} segundos disponibles.")
108
+ # except Exception as e:
109
+ # print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
110
 
111
  def modificaModeloActual(nuevo_modelo):
112
  """
 
114
  problemas con el actual.
115
  """
116
 
117
+ print("Estoy en actualiza modelo actual...")
118
+ modelo_actual = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_actual')
119
+ conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', nuevo_modelo)
120
+ print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
121
 
122
  # Guardar el nuevo número en el archivo
123
+ # try:
124
+ # archivo_ruta = "archivos/modelo_actual.txt"
125
+ # with open(archivo_ruta, 'w') as archivo:
126
+ # archivo.write(nuevo_modelo)
127
+ # except Exception as e:
128
+ # print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
129
 
130
  def renuevaModeloPrincipal():
131
+ #Obten el modelo principal (default).
132
+ modelo_principal = conexion_firebase.obtenDato('nowme', 'huggingface', 'modelo_principal')
133
+ #Asignalo como modelo actual.
134
+ conexion_firebase.editaDato('nowme', 'huggingface', 'modelo_actual', modelo_principal)
 
 
 
 
 
 
 
 
135
 
136
  def imprimeTime():
137
  timestamp_actual = int(time.time())
138
  fecha_hora = datetime.fromtimestamp(timestamp_actual)
139
  fecha_hora_legible = fecha_hora.strftime('%Y-%m-%d %H:%M:%S')
 
140
  return fecha_hora_legible
141
 
142
  def esDiaSiguiente():