Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -257,117 +257,142 @@ def update_image(image_url):
|
|
257 |
else:
|
258 |
return None
|
259 |
|
260 |
-
#
|
261 |
-
def process_input(message, history):
|
262 |
-
# Implementa tu lógica de procesamiento aquí
|
263 |
-
response = f"Procesando: {message}"
|
264 |
-
history.append((message, response))
|
265 |
-
return history, history, None
|
266 |
-
|
267 |
-
# Función para enviar una pregunta preestablecida
|
268 |
-
def send_preset_question(question, history):
|
269 |
-
return process_input(question, history)
|
270 |
-
|
271 |
-
# Lista ampliada de categorías y preguntas
|
272 |
-
categories = [
|
273 |
-
("Diagnósticos", [
|
274 |
-
"¿Cuál es el diagnóstico más común registrado en el dataset?",
|
275 |
-
"¿Cuáles son los diagnósticos más frecuentes que requieren hospitalización prolongada?",
|
276 |
-
"¿Qué tan frecuentes son los diagnósticos relacionados con nacimientos prematuros?",
|
277 |
-
"¿Cuál es la incidencia de diagnósticos graves como el 'Síndrome de Dificultad Respiratoria' (P220)?",
|
278 |
-
"¿Cuáles son los códigos CIE-10 relacionados con infecciones neonatales?",
|
279 |
-
"¿Qué diagnósticos están clasificados bajo el código P00-P96 en neonatos?",
|
280 |
-
"¿Cuáles son los diagnósticos menos comunes en el dataset?",
|
281 |
-
"¿Cómo se distribuyen los diagnósticos entre pacientes masculinos y femeninos?",
|
282 |
-
"¿Existen diferencias significativas en los diagnósticos entre diferentes departamentos?"
|
283 |
-
]),
|
284 |
-
("Medicamentos", [
|
285 |
-
"¿Qué medicamentos son más usados en neonatos?",
|
286 |
-
"¿Cuál es el medicamento más usado para infecciones neonatales?",
|
287 |
-
"¿Qué tipo de forma farmacéutica es la más utilizada en neonatos?",
|
288 |
-
"¿Cuáles son los medicamentos más costosos administrados a recién nacidos?",
|
289 |
-
"¿Qué proporción de medicamentos administrados son antibióticos?",
|
290 |
-
"¿Qué porcentaje del total de medicamentos administrados corresponde a la Tetraciclina Clorhidrato?",
|
291 |
-
"¿Qué medicamentos se utilizan con mayor frecuencia en los departamentos con menos recursos?",
|
292 |
-
"¿Cuáles son los medicamentos menos comunes administrados en el dataset?",
|
293 |
-
"¿Qué relación existe entre el tipo de medicamento y el diagnóstico principal?"
|
294 |
-
]),
|
295 |
-
("Estadísticas y Frecuencia", [
|
296 |
-
"¿Qué porcentaje del total de registros corresponde al diagnóstico 'Nacido Vivo Único' (Z370)?",
|
297 |
-
"¿Cuál es la distribución por edad gestacional de los neonatos en el dataset?",
|
298 |
-
"¿Cuál es la tasa de readmisión hospitalaria en neonatos?",
|
299 |
-
"¿Cómo varía la mortalidad neonatal entre diferentes departamentos?",
|
300 |
-
"¿Hay patrones estacionales en la administración de medicamentos?",
|
301 |
-
"¿Cuál es la duración promedio de la hospitalización para los recién nacidos?",
|
302 |
-
"¿Qué proporción de recién nacidos es hospitalizada por más de 7 días?",
|
303 |
-
"¿Cómo varía la duración de la hospitalización entre los diferentes departamentos?",
|
304 |
-
"¿Qué diagnósticos están asociados con hospitalizaciones de corta duración?"
|
305 |
-
]),
|
306 |
-
("Impacto y Calidad de Datos", [
|
307 |
-
"¿Cómo impacta el uso de antibióticos en la recuperación neonatal?",
|
308 |
-
"¿Qué mejoras se pueden implementar en la atención neonatal?",
|
309 |
-
"¿Cuál es la efectividad de las medidas preventivas en la reducción de infecciones neonatales?",
|
310 |
-
"¿Cuáles son las limitaciones de los datos sobre salud neonatal?",
|
311 |
-
"¿Qué tan completos y precisos son los registros de diagnóstico?",
|
312 |
-
"¿Cómo se manejaron los valores faltantes en la variable de peso (PESO)?",
|
313 |
-
"¿Qué método se utilizó para imputar valores faltantes en la variable de días de hospitalización?",
|
314 |
-
"¿Cómo se gestionaron los outliers en la variable de peso por género?",
|
315 |
-
"¿Qué recomendaciones se hicieron para mejorar la calidad de los datos en futuros estudios?"
|
316 |
-
]),
|
317 |
-
("Análisis Geográfico", [
|
318 |
-
"¿Cuál es el departamento con el mayor número de registros de administración de medicamentos?",
|
319 |
-
"¿Qué departamentos tienen los menores registros de administración de medicamentos?",
|
320 |
-
"¿Cuál es la diferencia en la administración de medicamentos entre Lima y La Libertad?",
|
321 |
-
"¿Cómo se distribuyen los registros de administración de medicamentos en áreas urbanas versus rurales?",
|
322 |
-
"¿Qué departamento muestra la mayor variedad de medicamentos administrados?",
|
323 |
-
"¿Existen diferencias en el costo de los medicamentos entre diferentes provincias dentro de un mismo departamento?",
|
324 |
-
"¿Qué provincia tiene el menor registro de administración de medicamentos?",
|
325 |
-
"¿Cómo varía la administración de medicamentos en los distritos más poblados versus los menos poblados?"
|
326 |
-
]),
|
327 |
-
("Análisis Temporal", [
|
328 |
-
"¿Cuál es el rango de fechas de administración de medicamentos registrado en el dataset?",
|
329 |
-
"¿En qué meses se registra la mayor cantidad de administración de medicamentos?",
|
330 |
-
"¿Cuál es la distribución de la administración de medicamentos a lo largo de los días de la semana?",
|
331 |
-
"¿Existen picos en la administración de medicamentos durante períodos específicos?",
|
332 |
-
"¿Cómo ha evolucionado la administración de medicamentos desde 2022 hasta 2023?",
|
333 |
-
"¿Qué impacto tienen las estaciones del año en la administración de medicamentos?",
|
334 |
-
"¿Cómo varía la administración de medicamentos durante días festivos o feriados?",
|
335 |
-
"¿Qué variación se observa en la administración de medicamentos al comparar el primer y el último trimestre de 2023?"
|
336 |
-
])
|
337 |
-
]
|
338 |
-
|
339 |
-
# Configuración de la interfaz de Gradio
|
340 |
with gr.Blocks() as demo:
|
341 |
with gr.Row():
|
342 |
-
with gr.Column(scale=
|
343 |
chatbot_input = gr.Textbox(label="Tu mensaje")
|
344 |
chatbot_output = gr.Chatbot(label="ChatBot")
|
345 |
chatbot_history = gr.State(value=[])
|
346 |
image_url = gr.State(value=None)
|
347 |
submit_button = gr.Button("Enviar")
|
348 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
349 |
with gr.Column(scale=1):
|
350 |
image_output = gr.Image(label="Imagen asociada")
|
351 |
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
demo.launch(debug=True)
|
|
|
257 |
else:
|
258 |
return None
|
259 |
|
260 |
+
# Gradio layout setup
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
261 |
with gr.Blocks() as demo:
|
262 |
with gr.Row():
|
263 |
+
with gr.Column(scale=1):
|
264 |
chatbot_input = gr.Textbox(label="Tu mensaje")
|
265 |
chatbot_output = gr.Chatbot(label="ChatBot")
|
266 |
chatbot_history = gr.State(value=[])
|
267 |
image_url = gr.State(value=None)
|
268 |
submit_button = gr.Button("Enviar")
|
269 |
|
270 |
+
# Main accordion for categories
|
271 |
+
with gr.Accordion("Categorías de Preguntas", open=True):
|
272 |
+
|
273 |
+
# Diagnósticos Accordion
|
274 |
+
with gr.Accordion("Diagnósticos", open=False):
|
275 |
+
|
276 |
+
# Subaccordion for Diagnósticos Comunes
|
277 |
+
with gr.Accordion("Diagnósticos Comunes", open=False):
|
278 |
+
button_1 = gr.Button("¿Cuál es el diagnóstico más común registrado en el dataset?")
|
279 |
+
button_2 = gr.Button("¿Cuáles son los diagnósticos más frecuentes que requieren hospitalización prolongada?")
|
280 |
+
button_3 = gr.Button("¿Qué tan frecuentes son los diagnósticos relacionados con nacimientos prematuros?")
|
281 |
+
button_4 = gr.Button("¿Cuáles son los diagnósticos menos comunes en el dataset?")
|
282 |
+
|
283 |
+
# Subaccordion for Diagnósticos Críticos
|
284 |
+
with gr.Accordion("Diagnósticos Críticos", open=False):
|
285 |
+
button_5 = gr.Button("¿Cuál es la incidencia de diagnósticos graves como el 'Síndrome de Dificultad Respiratoria' (P220)?")
|
286 |
+
button_6 = gr.Button("¿Cuál es la tasa de mortalidad asociada a estos diagnósticos graves?")
|
287 |
+
button_7 = gr.Button("¿Qué porcentaje de neonatos con sepsis requiere cuidados intensivos?")
|
288 |
+
|
289 |
+
# Subaccordion for Codificación y Clasificación
|
290 |
+
with gr.Accordion("Codificación y Clasificación", open=False):
|
291 |
+
button_8 = gr.Button("¿Cuáles son los códigos CIE-10 relacionados con infecciones neonatales?")
|
292 |
+
button_9 = gr.Button("¿Qué diagnósticos están clasificados bajo el código P00-P96 en neonatos?")
|
293 |
+
|
294 |
+
# Tratamientos Accordion
|
295 |
+
with gr.Accordion("Tratamientos", open=False):
|
296 |
+
|
297 |
+
# Subaccordion for Medicamentos Comunes
|
298 |
+
with gr.Accordion("Medicamentos Comunes", open=False):
|
299 |
+
button_10 = gr.Button("¿Qué medicamentos son más usados en neonatos?")
|
300 |
+
button_11 = gr.Button("¿Cuál es el medicamento más usado para infecciones neonatales?")
|
301 |
+
button_12 = gr.Button("¿Cuáles son los efectos secundarios más comunes de estos medicamentos?")
|
302 |
+
|
303 |
+
# Subaccordion for Intervenciones Médicas
|
304 |
+
with gr.Accordion("Intervenciones Médicas", open=False):
|
305 |
+
button_13 = gr.Button("¿Cuál es la proporción de diagnósticos que requieren intervención quirúrgica?")
|
306 |
+
button_14 = gr.Button("¿Cuáles son las complicaciones más frecuentes durante las intervenciones quirúrgicas en neonatos?")
|
307 |
+
button_15 = gr.Button("¿Cuál es la tasa de éxito de las intervenciones quirúrgicas en neonatos?")
|
308 |
+
|
309 |
+
# Estadísticas y Frecuencia Accordion
|
310 |
+
with gr.Accordion("Estadísticas y Frecuencia", open=False):
|
311 |
+
|
312 |
+
# Subaccordion for Estadísticas Generales
|
313 |
+
with gr.Accordion("Estadísticas Generales", open=False):
|
314 |
+
button_16 = gr.Button("¿Qué porcentaje del total de registros corresponde al diagnóstico 'Nacido Vivo Único' (Z370)?")
|
315 |
+
button_17 = gr.Button("¿Cuál es la distribución por edad gestacional de los neonatos en el dataset?")
|
316 |
+
button_18 = gr.Button("¿Cuál es la tasa de readmisión hospitalaria en neonatos?")
|
317 |
+
|
318 |
+
# Subaccordion for Diferencias Geográficas
|
319 |
+
with gr.Accordion("Diferencias Geográficas", open=False):
|
320 |
+
button_19 = gr.Button("¿Cómo varía el acceso a medicamentos entre regiones?")
|
321 |
+
button_20 = gr.Button("¿Existen diferencias significativas en las tasas de diagnóstico entre diferentes regiones?")
|
322 |
+
button_21 = gr.Button("¿Cómo varía la mortalidad neonatal entre diferentes departamentos?")
|
323 |
+
|
324 |
+
# Subaccordion for Análisis Temporal
|
325 |
+
with gr.Accordion("Análisis Temporal", open=False):
|
326 |
+
button_22 = gr.Button("¿Hay patrones estacionales en la administración de medicamentos?")
|
327 |
+
button_23 = gr.Button("¿Cómo han cambiado las tasas de mortalidad neonatal a lo largo de los años?")
|
328 |
+
button_24 = gr.Button("¿Existen variaciones en la incidencia de diagnósticos críticos a lo largo del año?")
|
329 |
+
|
330 |
+
# Impacto y Calidad de Datos Accordion
|
331 |
+
with gr.Accordion("Impacto y Calidad de Datos", open=False):
|
332 |
+
|
333 |
+
# Subaccordion for Impacto en la Salud Neonatal
|
334 |
+
with gr.Accordion("Impacto en la Salud Neonatal", open=False):
|
335 |
+
button_25 = gr.Button("¿Cómo impacta el uso de antibióticos en la recuperación neonatal?")
|
336 |
+
button_26 = gr.Button("¿Qué mejoras se pueden implementar en la atención neonatal?")
|
337 |
+
button_27 = gr.Button("¿Cuál es la efectividad de las medidas preventivas en la reducción de infecciones neonatales?")
|
338 |
+
|
339 |
+
# Subaccordion for Calidad de Datos
|
340 |
+
with gr.Accordion("Calidad de Datos", open=False):
|
341 |
+
button_28 = gr.Button("¿Cuáles son las limitaciones de los datos sobre salud neonatal?")
|
342 |
+
button_29 = gr.Button("¿Qué tan completos y precisos son los registros de diagnóstico?")
|
343 |
+
button_30 = gr.Button("¿Cómo afecta la calidad de los datos a la investigación y atención neonatal?")
|
344 |
+
|
345 |
with gr.Column(scale=1):
|
346 |
image_output = gr.Image(label="Imagen asociada")
|
347 |
|
348 |
+
def process_input(message, history):
|
349 |
+
full_response, image = chat_function(message, history)
|
350 |
+
history.append((message, full_response))
|
351 |
+
return history, history, image
|
352 |
+
|
353 |
+
# Function to update chatbot input with preset question
|
354 |
+
def send_preset_question(question, history):
|
355 |
+
return process_input(question, history)
|
356 |
+
|
357 |
+
# Assign the buttons to send the respective categorized questions
|
358 |
+
button_assignments = [
|
359 |
+
(button_1, "¿Cuál es el diagnóstico más común registrado en el dataset?"),
|
360 |
+
(button_2, "¿Cuáles son los diagnósticos más frecuentes que requieren hospitalización prolongada?"),
|
361 |
+
(button_3, "¿Qué tan frecuentes son los diagnósticos relacionados con nacimientos prematuros?"),
|
362 |
+
(button_4, "¿Cuáles son los diagnósticos menos comunes en el dataset?"),
|
363 |
+
(button_5, "¿Cuál es la incidencia de diagnósticos graves como el 'Síndrome de Dificultad Respiratoria' (P220)?"),
|
364 |
+
(button_6, "¿Cuál es la tasa de mortalidad asociada a estos diagnósticos graves?"),
|
365 |
+
(button_7, "¿Qué porcentaje de neonatos con sepsis requiere cuidados intensivos?"),
|
366 |
+
(button_8, "¿Cuáles son los códigos CIE-10 relacionados con infecciones neonatales?"),
|
367 |
+
(button_9, "¿Qué diagnósticos están clasificados bajo el código P00-P96 en neonatos?"),
|
368 |
+
(button_10, "¿Qué medicamentos son más usados en neonatos?"),
|
369 |
+
(button_11, "¿Cuál es el medicamento más usado para infecciones neonatales?"),
|
370 |
+
(button_12, "¿Cuáles son los efectos secundarios más comunes de estos medicamentos?"),
|
371 |
+
(button_13, "¿Cuál es la proporción de diagnósticos que requieren intervención quirúrgica?"),
|
372 |
+
(button_14, "¿Cuáles son las complicaciones más frecuentes durante las intervenciones quirúrgicas en neonatos?"),
|
373 |
+
(button_15, "¿Cuál es la tasa de éxito de las intervenciones quirúrgicas en neonatos?"),
|
374 |
+
(button_16, "¿Qué porcentaje del total de registros corresponde al diagnóstico 'Nacido Vivo Único' (Z370)?"),
|
375 |
+
(button_17, "¿Cuál es la distribución por edad gestacional de los neonatos en el dataset?"),
|
376 |
+
(button_18, "¿Cuál es la tasa de readmisión hospitalaria en neonatos?"),
|
377 |
+
(button_19, "¿Cómo varía el acceso a medicamentos entre regiones?"),
|
378 |
+
(button_20, "¿Existen diferencias significativas en las tasas de diagnóstico entre diferentes regiones?"),
|
379 |
+
(button_21, "¿Cómo varía la mortalidad neonatal entre diferentes departamentos?"),
|
380 |
+
(button_22, "¿Hay patrones estacionales en la administración de medicamentos?"),
|
381 |
+
(button_23, "¿Cómo han cambiado las tasas de mortalidad neonatal a lo largo de los años?"),
|
382 |
+
(button_24, "¿Existen variaciones en la incidencia de diagnósticos críticos a lo largo del año?"),
|
383 |
+
(button_25, "¿Cómo impacta el uso de antibióticos en la recuperación neonatal?"),
|
384 |
+
(button_26, "¿Qué mejoras se pueden implementar en la atención neonatal?"),
|
385 |
+
(button_27, "¿Cuál es la efectividad de las medidas preventivas en la reducción de infecciones neonatales?"),
|
386 |
+
(button_28, "¿Cuáles son las limitaciones de los datos sobre salud neonatal?"),
|
387 |
+
(button_29, "¿Qué tan completos y precisos son los registros de diagnóstico?"),
|
388 |
+
(button_30, "¿Cómo afecta la calidad de los datos a la investigación y atención neonatal?"),
|
389 |
+
]
|
390 |
+
|
391 |
+
for button, question in button_assignments:
|
392 |
+
button.click(send_preset_question, inputs=[gr.State(value=question), chatbot_history], outputs=[chatbot_output, chatbot_history, image_url])
|
393 |
+
|
394 |
+
submit_button.click(process_input, inputs=[chatbot_input, chatbot_history], outputs=[chatbot_output, chatbot_history, image_url])
|
395 |
+
image_url.change(fn=update_image, inputs=image_url, outputs=image_output)
|
396 |
+
|
397 |
+
# Launch the interface
|
398 |
demo.launch(debug=True)
|