Josedcape commited on
Commit
2d1a4d4
verified
1 Parent(s): e22364d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +23 -5
app.py CHANGED
@@ -31,7 +31,8 @@ def obtener_respuesta_groq(pregunta, contexto="", modelo="llama3-8b-8192", tempe
31
 
32
  try:
33
  with st.spinner('Evaluando su respuesta...'):
34
- # Hacer la llamada a la API de Groq
 
35
  response = client_groq.chat.completions.create(
36
  messages=[
37
  {"role": "system", "content": contexto},
@@ -124,17 +125,34 @@ def mostrar_galatea_asistente():
124
  'pregunta': pregunta_usuario,
125
  'tiempo_ejecucion': tiempo_ejecucion,
126
  'tiempo_en_segundos': tiempo_en_segundos,
127
- 'audio_file_path': None
 
128
  }
129
 
130
- # Actualizar la interfaz cada segundo para verificar si el tiempo ha pasado
131
  st_autorefresh(interval=1000, key="data_refresh")
132
 
133
  # Verificar si hay una respuesta programada que deba ejecutarse
134
  if 'respuesta_programada' in st.session_state and st.session_state['respuesta_programada']:
135
  respuesta_programada = st.session_state['respuesta_programada']
136
- if datetime.now() >= respuesta_programada['tiempo_ejecucion'] and respuesta_programada['audio_file_path'] is None:
137
- # Generar la respuesta
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
138
  respuesta, audio_file_path = obtener_respuesta_groq(respuesta_programada['pregunta'])
139
 
140
  # Guardar la respuesta y el audio en el estado
 
31
 
32
  try:
33
  with st.spinner('Evaluando su respuesta...'):
34
+ # Hacer la llamada a la API de Groq con el rol de Galatea
35
+ contexto = "Act煤as como Galatea, la asistente virtual de la cl铆nica odontol贸gica Omardent. Tu funci贸n es recordar citas y eventos de forma clara y profesional."
36
  response = client_groq.chat.completions.create(
37
  messages=[
38
  {"role": "system", "content": contexto},
 
125
  'pregunta': pregunta_usuario,
126
  'tiempo_ejecucion': tiempo_ejecucion,
127
  'tiempo_en_segundos': tiempo_en_segundos,
128
+ 'audio_file_path': None,
129
+ 'notificacion_reproducida': False # Para saber si se ha reproducido la notificaci贸n
130
  }
131
 
132
+ # Actualizar la interfaz cada segundo para verificar si el tiempo ha pasado y mostrar el contador
133
  st_autorefresh(interval=1000, key="data_refresh")
134
 
135
  # Verificar si hay una respuesta programada que deba ejecutarse
136
  if 'respuesta_programada' in st.session_state and st.session_state['respuesta_programada']:
137
  respuesta_programada = st.session_state['respuesta_programada']
138
+
139
+ # Mostrar el contador del tiempo restante
140
+ tiempo_restante = respuesta_programada['tiempo_ejecucion'] - datetime.now()
141
+ if tiempo_restante.total_seconds() > 0:
142
+ minutos, segundos = divmod(int(tiempo_restante.total_seconds()), 60)
143
+ horas, minutos = divmod(minutos, 60)
144
+ tiempo_restante_str = f"{horas}h {minutos}m {segundos}s" if horas > 0 else f"{minutos}m {segundos}s"
145
+ st.info(f"Tiempo restante: {tiempo_restante_str}")
146
+
147
+ # Reproducir la notificaci贸n si el tiempo ha pasado y la notificaci贸n a煤n no se ha reproducido
148
+ if datetime.now() >= respuesta_programada['tiempo_ejecucion'] and not respuesta_programada['notificacion_reproducida']:
149
+ # Reproducir la notificaci贸n
150
+ with open("notificacion.mp3", "rb") as audio_file:
151
+ st.audio(audio_file.read(), format="audio/mp3")
152
+ st.session_state['respuesta_programada']['notificacion_reproducida'] = True # Marcar que se ha reproducido
153
+
154
+ # Generar la respuesta si ya se ha reproducido la notificaci贸n y no se ha generado el audio
155
+ if st.session_state['respuesta_programada']['notificacion_reproducida'] and st.session_state['respuesta_programada']['audio_file_path'] is None:
156
  respuesta, audio_file_path = obtener_respuesta_groq(respuesta_programada['pregunta'])
157
 
158
  # Guardar la respuesta y el audio en el estado