JavierIA commited on
Commit
1020f78
1 Parent(s): 884a1b0
Files changed (1) hide show
  1. app.py +33 -27
app.py CHANGED
@@ -1,4 +1,5 @@
1
  import json
 
2
  import gradio as gr
3
  import time
4
  from openai import OpenAI
@@ -54,34 +55,39 @@ def curso_info(nombre, demografia, ingresos, situacion_laboral, intereses, acces
54
  contenido_respuesta = respuesta_api.data[1].content[0].text.value
55
  # Procesar el contenido para extraer el JSON
56
  # Eliminar los backticks triples y cualquier otro formato markdown si es necesario
57
- json_str = contenido_respuesta.strip("`")
58
- print(json_str)
59
- # Parsear el string JSON extraído
60
- respuesta_json = json.loads(json_str)
61
- nombre_curso = respuesta_json["nombrecurso"]
62
- calificacion = respuesta_json["calificacionfinal"]
63
-
64
- # Añadir emojis y descripciones según la calificación
65
- if calificacion >= 4.5:
66
- emoji = "🌟🌟🌟🌟🌟"
67
- descripcion = "¡Excelente! Un curso altamente recomendado."
68
- elif calificacion >= 3.5:
69
- emoji = "🌟🌟🌟🌟"
70
- descripcion = "Muy bueno. Vale la pena considerarlo."
71
- elif calificacion >= 2.5:
72
- emoji = "🌟🌟🌟"
73
- descripcion = "Bueno, pero hay margen de mejora."
74
- elif calificacion >= 1.5:
75
- emoji = "🌟🌟"
76
- descripcion = "Regular. Podría ser mejor."
 
 
 
 
 
 
 
 
 
77
  else:
78
- emoji = "🌟"
79
- descripcion = "Por debajo de las expectativas."
80
-
81
- # Combinar todo en un mensaje personalizado
82
- mensaje = f"Curso: {nombre_curso}\nCalificación: {calificacion} {emoji}\n{descripcion}"
83
-
84
- return mensaje
85
 
86
  dircionarioDemografias = {
87
  1: "Menores de Edad",
 
1
  import json
2
+ import re
3
  import gradio as gr
4
  import time
5
  from openai import OpenAI
 
55
  contenido_respuesta = respuesta_api.data[1].content[0].text.value
56
  # Procesar el contenido para extraer el JSON
57
  # Eliminar los backticks triples y cualquier otro formato markdown si es necesario
58
+ match = re.search(r'\{.*\}', contenido_respuesta, re.DOTALL)
59
+ if match:
60
+ json_str = match.group(0)
61
+ print("JSON string extracted:", json_str) # Para depuración
62
+ try:
63
+ respuesta_json = json.loads(json_str)
64
+ nombre_curso = respuesta_json.get("nombrecurso", "Nombre no disponible")
65
+ calificacion = respuesta_json.get("calificacionfinal", "Calificación no disponible")
66
+ if calificacion >= 4.5:
67
+ emoji = "🌟🌟🌟🌟🌟"
68
+ descripcion = "¡Excelente! Un curso altamente recomendado."
69
+ elif calificacion >= 3.5:
70
+ emoji = "🌟🌟🌟🌟"
71
+ descripcion = "Muy bueno. Vale la pena considerarlo."
72
+ elif calificacion >= 2.5:
73
+ emoji = "🌟🌟🌟"
74
+ descripcion = "Bueno, pero hay margen de mejora."
75
+ elif calificacion >= 1.5:
76
+ emoji = "🌟🌟"
77
+ descripcion = "Regular. Podría ser mejor."
78
+ else:
79
+ emoji = "🌟"
80
+ descripcion = "Por debajo de las expectativas."
81
+ return f"Curso: {nombre_curso}\nCalificación: {calificacion} {emoji}\n{descripcion}"
82
+
83
+ except json.JSONDecodeError as e:
84
+ print("Error al analizar JSON:", e)
85
+ # Manejar el error adecuadamente
86
+ return "Error al procesar la respuesta de la API."
87
  else:
88
+ print("No se encontró un patrón JSON válido en la respuesta.")
89
+ # Manejar la ausencia de un patrón JSON
90
+ return "No se pudo extraer la información del curso."
 
 
 
 
91
 
92
  dircionarioDemografias = {
93
  1: "Menores de Edad",