JavierIA commited on
Commit
884a1b0
·
1 Parent(s): 241119d
Files changed (1) hide show
  1. app.py +87 -23
app.py CHANGED
@@ -25,12 +25,12 @@ def get_response(thread):
25
 
26
  def submit_to_openai(nombre,demografia, ingresos, situacion_laboral, intereses, accesibilidad_tecnologia, complejidad):
27
  send_message = f"""Nombre del Curso: {nombre}
28
- Demografía Local: {demografia}
29
- Nivel de Ingresos: {ingresos}
30
- Situación Laboral: {situacion_laboral}
31
- Intereses Específicos de la Población: {intereses}
32
- Accesibilidad a la Tecnología: {accesibilidad_tecnologia}
33
- Complejidad del Curso: {complejidad}"""
34
 
35
  empty_thread = client.beta.threads.create()
36
  submit_message(my_assistant.id, empty_thread, send_message)
@@ -39,7 +39,14 @@ Complejidad del Curso: {complejidad}"""
39
  return response
40
 
41
  def curso_info(nombre, demografia, ingresos, situacion_laboral, intereses, accesibilidad_tecnologia, complejidad):
42
- # Suponiendo que submit_to_openai ya está definido y envía correctamente los parámetros
 
 
 
 
 
 
 
43
  respuesta_api = submit_to_openai(nombre, demografia, ingresos, situacion_laboral, intereses, accesibilidad_tecnologia, complejidad)
44
 
45
  # Extraer el contenido del segundo mensaje (índice 1) en la lista de respuestas
@@ -48,7 +55,7 @@ def curso_info(nombre, demografia, ingresos, situacion_laboral, intereses, acces
48
  # Procesar el contenido para extraer el JSON
49
  # Eliminar los backticks triples y cualquier otro formato markdown si es necesario
50
  json_str = contenido_respuesta.strip("`")
51
-
52
  # Parsear el string JSON extraído
53
  respuesta_json = json.loads(json_str)
54
  nombre_curso = respuesta_json["nombrecurso"]
@@ -76,24 +83,81 @@ def curso_info(nombre, demografia, ingresos, situacion_laboral, intereses, acces
76
 
77
  return mensaje
78
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
79
 
80
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
81
- gr.Interface(
82
- fn=curso_info,
83
- inputs=[
84
- gr.Textbox(label="Nombre del Curso", type="text"),
85
- gr.Slider(minimum=1, maximum=5, label="Demografía Local", step=0.5),
86
- gr.Slider(minimum=1, maximum=5, label="Nivel de Ingresos", step=0.5),
87
- gr.Slider(minimum=1, maximum=5, label="Situación Laboral", step=0.5),
88
- gr.Slider(minimum=1, maximum=5, label="Intereses Específicos de la Población", step=0.5),
89
- gr.Slider(minimum=1, maximum=5, label="Accesibilidad a la Tecnología", step=0.5),
90
- gr.Slider(minimum=1, maximum=5, label="Complejidad del Curso", step=0.5)
91
- ],
92
- outputs="text",
93
- title="Información del Curso",
94
- description="Ajusta los deslizadores para definir los parámetros del curso y recibir recomendaciones."
 
 
 
 
 
 
95
 
96
- )
97
 
98
  if __name__ == "__main__":
99
  demo.launch()
 
25
 
26
  def submit_to_openai(nombre,demografia, ingresos, situacion_laboral, intereses, accesibilidad_tecnologia, complejidad):
27
  send_message = f"""Nombre del Curso: {nombre}
28
+ Demografía Local: {demografia}
29
+ Nivel de Ingresos: {ingresos}
30
+ Situación Laboral: {situacion_laboral}
31
+ Intereses Específicos de la Población: {intereses}
32
+ Accesibilidad a la Tecnología: {accesibilidad_tecnologia}
33
+ Complejidad del Curso: {complejidad}"""
34
 
35
  empty_thread = client.beta.threads.create()
36
  submit_message(my_assistant.id, empty_thread, send_message)
 
39
  return response
40
 
41
  def curso_info(nombre, demografia, ingresos, situacion_laboral, intereses, accesibilidad_tecnologia, complejidad):
42
+ print(nombre, demografia, ingresos, situacion_laboral, intereses, accesibilidad_tecnologia, complejidad)
43
+ #sumar + 1 a cada variable para que coincida con el diccionario
44
+ demografia += 1
45
+ ingresos += 1
46
+ situacion_laboral += 1
47
+ intereses += 1
48
+ accesibilidad_tecnologia += 1
49
+ complejidad += 1
50
  respuesta_api = submit_to_openai(nombre, demografia, ingresos, situacion_laboral, intereses, accesibilidad_tecnologia, complejidad)
51
 
52
  # Extraer el contenido del segundo mensaje (índice 1) en la lista de respuestas
 
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"]
 
83
 
84
  return mensaje
85
 
86
+ dircionarioDemografias = {
87
+ 1: "Menores de Edad",
88
+ 2: "Jóvenes",
89
+ 3: "Adultos",
90
+ 4: "Adultos Mayores",
91
+ 5: "Todos"
92
+
93
+ }
94
+ diccionarioIngresos = {
95
+ 1: "Bajo (hasta 2 salarios mínimos)",
96
+ 2: "Medio bajo (2-4 salarios mínimos)",
97
+ 3: "Medio (4-6 salarios mínimos)",
98
+ 4: "Medio alto (6-8 salarios mínimos)",
99
+ 5: "Alto (más de 8 salarios mínimos)"
100
+ }
101
+
102
+ dircionarioSituacionLaboral = {
103
+ 1: "Desempleado 5 Horas",
104
+ 2: "Estudiante 4 Horas",
105
+ 3: "Independiente 3 Horas",
106
+ 4: "Estudiante 2 Horas",
107
+ 5: "No Aplica 1 Horas"
108
+ }
109
+ dircionarioIntereses = {
110
+ 1: "Ciencia y matemáticas",
111
+ 2: "Desarrollo personal y profesional",
112
+ 3: "Artes y humanidades",
113
+ 4: "Tecnología e innovación",
114
+ 5: "Salud y bienestar"
115
+ }
116
+ dircionarioAccesibilidadTecnologia = {
117
+ 5: "Mínimo (smartphone básico)",
118
+ 4: "Bajo (computadora de escritorio antigua o laptop)",
119
+ 3: "Moderado (smartphone avanzado o tablet)",
120
+ 2: "Alto (laptop o PC moderno)",
121
+ 1: "Muy alto (múltiples dispositivos de última generación)"
122
+ }
123
+ diccionarioComplejidad = {
124
+ 5: "Introductorio (sin conocimientos previos necesarios)",
125
+ 4: "Básico (conocimientos generales del tema)",
126
+ 3: "Intermedio (alguna experiencia previa necesaria)",
127
+ 2: "Avanzado (experiencia significativa en el tema)",
128
+ 1: "Experto (para especialistas en el tema)"
129
+ }
130
+ diccionarios = {
131
+ "Demografía Local": dircionarioDemografias,
132
+ "Nivel de Ingresos": diccionarioIngresos ,
133
+ "Situación Laboral": dircionarioSituacionLaboral,
134
+ "Intereses Específicos de la Población": dircionarioIntereses,
135
+ "Accesibilidad a la Tecnología": dircionarioAccesibilidadTecnologia,
136
+ "Complejidad del Curso": diccionarioComplejidad
137
+ }
138
 
139
  with gr.Blocks(theme=gr.themes.Soft()) as demo:
140
+ with gr.Row():
141
+ with gr.Column():
142
+ nombre = gr.Textbox("Nombre del Curso", placeholder="Introducción a la Programación")
143
+ demografia = gr.Dropdown(dircionarioDemografias.values(),type="index", label="Demografía Local")
144
+ ingresos = gr.Dropdown(diccionarioIngresos.values(),type="index", label="Nivel de Ingresos")
145
+ situacion_laboral = gr.Dropdown(dircionarioSituacionLaboral.values(),type="index", label="Situación Laboral")
146
+ intereses = gr.Dropdown(dircionarioIntereses.values(),type="index", label="Intereses Específicos de la Población")
147
+ accesibilidad_tecnologia = gr.Dropdown(dircionarioAccesibilidadTecnologia.values(),type="index", label="Accesibilidad a la Tecnología")
148
+ complejidad = gr.Dropdown(diccionarioComplejidad.values(),type="index", label="Complejidad del Curso")
149
+ button_submit = gr.Button("Enviar")
150
+ with gr.Column():
151
+ gr.Label("Resultado"),
152
+ resultado = gr.Textbox("Resultado", placeholder="Aquí aparecerá el resultado",label="Resultado")
153
+
154
+ button_submit.click(
155
+ curso_info,
156
+ inputs=[nombre, demografia, demografia, demografia, demografia, demografia, demografia], # Actualizar según corresponda
157
+ outputs=resultado
158
+ )
159
+
160
 
 
161
 
162
  if __name__ == "__main__":
163
  demo.launch()