Spaces:
Sleeping
Sleeping
Delete apps_demo.py
Browse files- apps_demo.py +0 -212
apps_demo.py
DELETED
@@ -1,212 +0,0 @@
|
|
1 |
-
# -*- coding: utf-8 -*-
|
2 |
-
"""Apps Demo.ipynb
|
3 |
-
|
4 |
-
Automatically generated by Colab.
|
5 |
-
|
6 |
-
Original file is located at
|
7 |
-
https://colab.research.google.com/drive/1cNgL1-QuBX_LR-XGoioKhFaqMM6zF7rL
|
8 |
-
|
9 |
-
# **1. Mejor hueco en tu horario para hacer ejercicio**
|
10 |
-
Según estudios, los mejores momentos suelen ser temprano en la mañana (entre 5 y 9 a.m.) o tarde en la tarde (entre 4 y 7 p.m.), dependiendo de los objetivos personales.
|
11 |
-
"""
|
12 |
-
|
13 |
-
!pip install gradio
|
14 |
-
!pip install transformers
|
15 |
-
!pip install torch
|
16 |
-
|
17 |
-
import gradio as gr
|
18 |
-
from datetime import datetime, timedelta
|
19 |
-
import re
|
20 |
-
|
21 |
-
def calcular_duracion(hora_inicio, hora_fin):
|
22 |
-
"""Calcula la duración en minutos entre dos horas."""
|
23 |
-
inicio = datetime.strptime(hora_inicio, "%H:%M")
|
24 |
-
fin = datetime.strptime(hora_fin, "%H:%M")
|
25 |
-
duracion = int((fin - inicio).total_seconds() / 60)
|
26 |
-
return duracion
|
27 |
-
|
28 |
-
def encontrar_mejor_hueco(horario, suenno):
|
29 |
-
"""Encuentra el hueco más largo en el día sin traslaparse con los horarios dados."""
|
30 |
-
|
31 |
-
# Validación del formato de los horarios ingresados
|
32 |
-
for bloque in horario.split(';'):
|
33 |
-
if not re.match(r'^\s*(\d{2}:\d{2})-(\d{2}:\d{2})\s*$', bloque.strip()):
|
34 |
-
return "Formato de horario inválido. Ejemplo: 09:00-10:00; 12:00-14:00"
|
35 |
-
if not re.match(r'^\s*(\d{2}:\d{2})-(\d{2}:\d{2})\s*$', suenno.strip()):
|
36 |
-
return "Formato de horario de sueño inválido. Ejemplo: 22:00-06:00"
|
37 |
-
|
38 |
-
# Añadir los horarios ocupados y de sueño al bloque de tiempo
|
39 |
-
bloques_tiempo = []
|
40 |
-
for bloque in (horario + ";" + suenno).split(';'):
|
41 |
-
hora_inicio, hora_fin = bloque.split('-')
|
42 |
-
bloques_tiempo.append((hora_inicio.strip(), hora_fin.strip()))
|
43 |
-
|
44 |
-
# Ordenar y añadir los extremos del día para facilitar el cálculo de huecos
|
45 |
-
bloques_tiempo.sort()
|
46 |
-
bloques_tiempo.insert(0, ("00:00", bloques_tiempo[0][0])) # Desde medianoche hasta el primer bloque
|
47 |
-
bloques_tiempo.append((bloques_tiempo[-1][1], "23:59")) # Desde el último bloque hasta el final del día
|
48 |
-
|
49 |
-
# Encontrar el hueco más largo sin superposición
|
50 |
-
max_duracion = 0
|
51 |
-
mejor_hueco = None
|
52 |
-
for i in range(len(bloques_tiempo) - 1):
|
53 |
-
inicio = bloques_tiempo[i][1]
|
54 |
-
fin = bloques_tiempo[i + 1][0]
|
55 |
-
duracion = calcular_duracion(inicio, fin)
|
56 |
-
if duracion > max_duracion:
|
57 |
-
max_duracion = duracion
|
58 |
-
mejor_hueco = f"{inicio}-{fin}"
|
59 |
-
|
60 |
-
# Evaluar si el mejor hueco se encuentra en los horarios recomendados científicamente
|
61 |
-
recomendacion = "No se encontró un hueco en tu horario para hacer ejercicio que coincida con los horarios recomendados según la ciencia."
|
62 |
-
hora_inicio_ejercicio = datetime.strptime("05:00", "%H:%M")
|
63 |
-
hora_fin_ejercicio = datetime.strptime("09:00", "%H:%M")
|
64 |
-
hora_inicio_tarde = datetime.strptime("16:00", "%H:%M")
|
65 |
-
hora_fin_tarde = datetime.strptime("19:00", "%H:%M")
|
66 |
-
|
67 |
-
# Convertir el mejor hueco en datetime para comparación
|
68 |
-
if mejor_hueco:
|
69 |
-
inicio_hueco, fin_hueco = mejor_hueco.split('-')
|
70 |
-
inicio_hueco = datetime.strptime(inicio_hueco, "%H:%M")
|
71 |
-
fin_hueco = datetime.strptime(fin_hueco, "%H:%M")
|
72 |
-
|
73 |
-
if (hora_inicio_ejercicio <= inicio_hueco <= hora_fin_ejercicio) or (hora_inicio_tarde <= inicio_hueco <= hora_fin_tarde):
|
74 |
-
recomendacion = f"El mejor momento para hacer ejercicio según la ciencia es dentro de tu mejor hueco: {mejor_hueco}. Recuerda escoger cuánto tiempo quieres ejercitar según tus necesidades y objetivos"
|
75 |
-
else:
|
76 |
-
recomendacion += f" Sin embargo, podrías ejercitar en el espacio {mejor_hueco}."
|
77 |
-
|
78 |
-
return f"El mejor hueco es de {max_duracion} minutos: {mejor_hueco}. {recomendacion}"
|
79 |
-
|
80 |
-
# Crear la interfaz de Gradio
|
81 |
-
demo = gr.Interface(
|
82 |
-
fn=encontrar_mejor_hueco,
|
83 |
-
inputs=[gr.Textbox(label="Horarios no disponibles (ej. 09:00-10:00; 12:00-14:00; incluyendo transporte, trabajo, etc.)"),
|
84 |
-
gr.Textbox(label="Horario de sueño (ej. 22:00-06:00)")],
|
85 |
-
outputs=gr.Textbox(label="Resultado"),
|
86 |
-
title="Encuentra tu mejor hueco para hacer ejercicio",
|
87 |
-
description="Ingresa tus horarios no disponibles, como los de sueño, transporte y trabajo, en formato 'HH:MM-HH:MM; HH:MM-HH:MM'. Las horas deben estar entre 00:00 y 23:59."
|
88 |
-
)
|
89 |
-
|
90 |
-
demo.launch()
|
91 |
-
|
92 |
-
!pip install gradio
|
93 |
-
!pip install transformers
|
94 |
-
!pip install torch
|
95 |
-
|
96 |
-
import gradio as gr
|
97 |
-
from datetime import datetime, timedelta
|
98 |
-
import re
|
99 |
-
|
100 |
-
def calcular_duracion(hora_inicio, hora_fin):
|
101 |
-
"""Calcula la duración en minutos entre dos horas."""
|
102 |
-
inicio = datetime.strptime(hora_inicio, "%H:%M")
|
103 |
-
fin = datetime.strptime(hora_fin, "%H:%M")
|
104 |
-
duracion = int((fin - inicio).total_seconds() / 60)
|
105 |
-
return duracion
|
106 |
-
|
107 |
-
def encontrar_mejor_hueco(horario, suenno):
|
108 |
-
"""Encuentra el hueco más largo en el día sin traslaparse con los horarios dados."""
|
109 |
-
|
110 |
-
# Validación del formato de los horarios ingresados
|
111 |
-
for bloque in horario.split(';'):
|
112 |
-
if not re.match(r'^\s*(\d{2}:\d{2})-(\d{2}:\d{2})\s*$', bloque.strip()):
|
113 |
-
return "Formato de horario inválido. Ejemplo: 09:00-10:00; 12:00-14:00"
|
114 |
-
if not re.match(r'^\s*(\d{2}:\d{2})-(\d{2}:\d{2})\s*$', suenno.strip()):
|
115 |
-
return "Formato de horario de sueño inválido. Ejemplo: 22:00-06:00"
|
116 |
-
|
117 |
-
# Añadir los horarios ocupados y de sueño al bloque de tiempo
|
118 |
-
bloques_tiempo = []
|
119 |
-
for bloque in (horario + ";" + suenno).split(';'):
|
120 |
-
hora_inicio, hora_fin = bloque.split('-')
|
121 |
-
bloques_tiempo.append((hora_inicio.strip(), hora_fin.strip()))
|
122 |
-
|
123 |
-
# Ordenar y añadir los extremos del día para facilitar el cálculo de huecos
|
124 |
-
bloques_tiempo.sort()
|
125 |
-
bloques_tiempo.insert(0, ("00:00", bloques_tiempo[0][0])) # Desde medianoche hasta el primer bloque
|
126 |
-
bloques_tiempo.append((bloques_tiempo[-1][1], "23:59")) # Desde el último bloque hasta el final del día
|
127 |
-
|
128 |
-
# Encontrar el hueco más largo sin superposición
|
129 |
-
max_duracion = 0
|
130 |
-
mejor_hueco = None
|
131 |
-
for i in range(len(bloques_tiempo) - 1):
|
132 |
-
inicio = bloques_tiempo[i][1]
|
133 |
-
fin = bloques_tiempo[i + 1][0]
|
134 |
-
duracion = calcular_duracion(inicio, fin)
|
135 |
-
if duracion > max_duracion:
|
136 |
-
max_duracion = duracion
|
137 |
-
mejor_hueco = f"{inicio}-{fin}"
|
138 |
-
|
139 |
-
# Evaluar si el mejor hueco se encuentra en los horarios recomendados científicamente
|
140 |
-
recomendacion = "No se encontró un hueco para hacer ejercicio en los horarios recomendados según la ciencia."
|
141 |
-
hora_inicio_ejercicio = datetime.strptime("05:00", "%H:%M")
|
142 |
-
hora_fin_ejercicio = datetime.strptime("09:00", "%H:%M")
|
143 |
-
hora_inicio_tarde = datetime.strptime("16:00", "%H:%M")
|
144 |
-
hora_fin_tarde = datetime.strptime("19:00", "%H:%M")
|
145 |
-
|
146 |
-
# Convertir el mejor hueco en datetime para comparación
|
147 |
-
if mejor_hueco:
|
148 |
-
inicio_hueco, fin_hueco = mejor_hueco.split('-')
|
149 |
-
inicio_hueco = datetime.strptime(inicio_hueco, "%H:%M")
|
150 |
-
fin_hueco = datetime.strptime(fin_hueco, "%H:%M")
|
151 |
-
|
152 |
-
if (hora_inicio_ejercicio <= inicio_hueco <= hora_fin_ejercicio) or (hora_inicio_tarde <= inicio_hueco <= hora_fin_tarde):
|
153 |
-
recomendacion = f"El mejor momento para hacer ejercicio según la ciencia es dentro de tu mejor hueco: {mejor_hueco}."
|
154 |
-
else:
|
155 |
-
recomendacion += f" Sin embargo, podrías ejercitar en el espacio {mejor_hueco}."
|
156 |
-
|
157 |
-
# Incluir redireccionamiento a ChatGPT
|
158 |
-
link_chatgpt = "https://chat.openai.com/?utm_source=gradio"
|
159 |
-
consulta_chatgpt = f"\n\nPara saber cuánto tiempo deberías ejercitar en este hueco según tus objetivos, consulta en ChatGPT: {link_chatgpt}"
|
160 |
-
|
161 |
-
return f"El mejor hueco es de {max_duracion} minutos: {mejor_hueco}. {recomendacion}{consulta_chatgpt}"
|
162 |
-
|
163 |
-
# Crear la interfaz de Gradio
|
164 |
-
demo = gr.Interface(
|
165 |
-
fn=encontrar_mejor_hueco,
|
166 |
-
inputs=[gr.Textbox(label="Horarios no disponibles (ej. 09:00-10:00; 12:00-14:00; incluyendo transporte, trabajo, etc.)"),
|
167 |
-
gr.Textbox(label="Horario de sueño (ej. 22:00-06:00)")],
|
168 |
-
outputs=gr.Textbox(label="Resultado"),
|
169 |
-
title="Encuentra tu mejor hueco para hacer ejercicio",
|
170 |
-
description="Ingresa tus horarios no disponibles, como los de sueño, transporte y trabajo, en formato 'HH:MM-HH:MM; HH:MM-HH:MM'. Las horas deben estar entre 00:00 y 23:59."
|
171 |
-
)
|
172 |
-
|
173 |
-
demo.launch()
|
174 |
-
|
175 |
-
"""# **2. Ayuda Bogotá: ¿debo llevar sombrilla?**
|
176 |
-
El clima de Bogotá es impredecible. ¿Debería llevar sombrilla?
|
177 |
-
"""
|
178 |
-
|
179 |
-
!pip install gradio
|
180 |
-
!pip install transformers
|
181 |
-
!pip install torch
|
182 |
-
|
183 |
-
import gradio as gr
|
184 |
-
import random
|
185 |
-
|
186 |
-
# Función que determina si necesitas llevar sombrilla
|
187 |
-
def necesitas_sombrilla(clima):
|
188 |
-
if clima == "lluvioso":
|
189 |
-
return "Sí, necesitas llevar sombrilla."
|
190 |
-
elif clima == "nublado":
|
191 |
-
return "Podría llover, es mejor que lleves sombrilla."
|
192 |
-
else:
|
193 |
-
return "No, no necesitas llevar sombrilla."
|
194 |
-
|
195 |
-
# Interfaz de la aplicación
|
196 |
-
with gr.Blocks() as demo:
|
197 |
-
gr.Markdown("# ¿Necesitas llevar sombrilla?")
|
198 |
-
|
199 |
-
with gr.Row():
|
200 |
-
with gr.Column():
|
201 |
-
clima_input = gr.Radio(["soleado", "nublado", "lluvioso"], label="¿Cómo está el clima?")
|
202 |
-
submit_btn = gr.Button("Comprobar")
|
203 |
-
with gr.Column():
|
204 |
-
sombrilla_output = gr.Textbox(label="Resultado")
|
205 |
-
|
206 |
-
submit_btn.click(
|
207 |
-
fn=necesitas_sombrilla,
|
208 |
-
inputs=clima_input,
|
209 |
-
outputs=sombrilla_output
|
210 |
-
)
|
211 |
-
|
212 |
-
demo.launch()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|