ItzRoBeerT commited on
Commit
ae2b075
·
1 Parent(s): a4d5f98

Updated app

Browse files
Files changed (1) hide show
  1. app.py +72 -70
app.py CHANGED
@@ -5,8 +5,6 @@ from dotenv import load_dotenv
5
 
6
  load_dotenv()
7
 
8
-
9
-
10
  def generate_response(apikey, model, complexity, tool, user_input):
11
  llm = ChatOpenAI(
12
  openai_api_key=apikey,
@@ -16,74 +14,77 @@ def generate_response(apikey, model, complexity, tool, user_input):
16
 
17
  # Aquí se define el prompt que se le pasará al modelo
18
  if tool == "Magic ToDo":
19
- tool_prompt = (
20
- "crear listas de tareas detalladas y estructuradas.",
21
- "OBJETIVO: Cuando el usuario te proporciona una tarea principal, tu trabajo es desglosarla en subtareas más pequeñas, manejables y específicas, organizadas jerárquicamente.",
22
-
23
- "INSTRUCCIONES DE FORMATO:",
24
- "- Devuelve siempre los resultados entre las etiquetas <todo> y </todo>",
25
- "- Cada tarea debe ser un objeto JSON con la siguiente estructura:",
26
- " {",
27
- " \"id\": número_entero, // Identificador único para cada tarea",
28
- " \"parent_id\": número_entero, // ID de la tarea padre (0 para tareas principales)",
29
- " \"text\": \"descripción\" // Descripción clara y accionable de la tarea",
30
- " }",
31
-
32
- "REGLAS IMPORTANTES:",
33
- "- La tarea principal siempre tendrá id=1 y parent_id=0",
34
- "- Las subtareas tendrán ids consecutivos (2, 3, 4...) y su parent_id será el id de su tarea padre",
35
- "- Cada tarea debe ser concreta, específica y accionable",
36
- "- Utiliza un lenguaje claro y directo en las descripciones",
37
- "- Incluye entre 5-15 subtareas en total, dependiendo de la complejidad",
38
-
39
- "EJEMPLO DE RESPUESTA:",
40
- "<todo>",
41
- "[",
42
- " {\"id\": 1, \"parent_id\": 0, \"text\": \"Hacer la compra semanal\"},",
43
- " {\"id\": 2, \"parent_id\": 1, \"text\": \"Preparar lista de alimentos necesarios\"},",
44
- " {\"id\": 3, \"parent_id\": 1, \"text\": \"Revisar ofertas en supermercados\"},",
45
- " {\"id\": 4, \"parent_id\": 1, \"text\": \"Comprar productos frescos\"},",
46
- " {\"id\": 5, \"parent_id\": 1, \"text\": \"Comprar productos no perecederos\"},",
47
- " {\"id\": 6, \"parent_id\": 1, \"text\": \"Organizar alimentos en casa\"}",
48
- "]",
49
- "</todo>"
50
- )
 
 
51
  else:
52
- tool_prompt = (
53
- "ser un profesor experto en el tema que el usuario te proporcione.",
54
-
55
- "OBJETIVO PRINCIPAL:",
56
- "Proporcionar explicaciones claras, precisas y accesibles sobre conceptos académicos o técnicos, adaptando el nivel de complejidad según las necesidades del usuario.",
57
-
58
- "CARACTERÍSTICAS CLAVE DE TUS EXPLICACIONES:",
59
- "- Simplicidad: Convierte conceptos complejos en explicaciones fáciles de entender",
60
- "- Precisión: Mantén el rigor académico sin sacrificar la claridad",
61
- "- Profundidad adaptable: Ajusta el nivel de detalle según el contexto",
62
- "- Relevancia: Relaciona los conceptos con situaciones reales o conocimientos previos",
63
- "- Estructura lógica: Organiza la información con una progresión coherente",
64
-
65
- "METODOLOGÍA PEDAGÓGICA:",
66
- "- Comienza con definiciones claras de los conceptos fundamentales",
67
- "- Descompón ideas complejas en componentes más simples",
68
- "- Utiliza analogías relevantes para conectar con conocimientos familiares",
69
- "- Ilustra los conceptos con ejemplos concretos y significativos",
70
- "- Anticipa y aborda posibles puntos de confusión",
71
- "- Concluye con un resumen que refuerce los puntos clave",
72
-
73
- "FORMATO DE RESPUESTA:",
74
- "1. Proporciona tu explicación principal entre las etiquetas <answer> y </answer>",
75
- "2. Incluye al menos un ejemplo práctico o caso de estudio entre las etiquetas <example> y </example>",
76
- "3. Si es apropiado, puedes incluir diagramas o representaciones visuales descritas textualmente",
77
-
78
- "EJEMPLO DE ESTRUCTURA:",
79
- "<answer>",
80
- "Aquí va una explicación clara y estructurada del tema solicitado, comenzando con conceptos básicos y progresando hacia aspectos más complejos. La explicación debe ser accesible pero precisa, evitando jerga innecesaria o simplificaciones excesivas que comprometan la precisión.",
81
- "</answer>",
82
-
83
- "<example>",
84
- "Aquí va un ejemplo concreto, caso de estudio o ejercicio resuelto que ilustre la aplicación práctica del concepto explicado. El ejemplo debe ser relevante, detallado y diseñado para reforzar la comprensión.",
85
- "</example>"
86
- )
 
87
  complexity_prompt = f"""
88
  IMPORTANTE, DEBES DE TENER EN CUENTA LA COMPLEJIDAD:
89
  La complejidad marca el nivel de detalle y sofisticación de la respuesta que se espera.
@@ -115,7 +116,8 @@ interface = gr.Interface(
115
  gr.Dropdown(
116
  ["google/gemma-3-27b-it:free",
117
  "google/gemini-2.0-flash-001",
118
- "anthropic/claude-3.5-sonnet",
 
119
  "openai/gpt-4o-mini"],
120
  info="Choose the model you want to use",
121
  label="Model",
 
5
 
6
  load_dotenv()
7
 
 
 
8
  def generate_response(apikey, model, complexity, tool, user_input):
9
  llm = ChatOpenAI(
10
  openai_api_key=apikey,
 
14
 
15
  # Aquí se define el prompt que se le pasará al modelo
16
  if tool == "Magic ToDo":
17
+ tool_prompt = """
18
+ crear listas de tareas detalladas y estructuradas.
19
+
20
+ OBJETIVO: Cuando el usuario te proporciona una tarea principal, tu trabajo es desglosarla en subtareas más pequeñas, manejables y específicas, organizadas jerárquicamente.
21
+
22
+ INSTRUCCIONES DE FORMATO:
23
+ - Devuelve siempre los resultados entre las etiquetas <todo> y </todo>
24
+ - Cada tarea debe ser un objeto JSON con la siguiente estructura:
25
+ {
26
+ "id": número_entero, // Identificador único para cada tarea
27
+ "parent_id": número_entero, // ID de la tarea padre (0 para tareas principales)
28
+ "text": "descripción" // Descripción clara y accionable de la tarea
29
+ }
30
+
31
+ REGLAS IMPORTANTES:
32
+ - La tarea principal siempre tendrá id=1 y parent_id=0
33
+ - Las subtareas tendrán ids consecutivos (2, 3, 4...) y su parent_id será el id de su tarea padre
34
+ - Cada tarea debe ser concreta, específica y accionable
35
+ - Utiliza un lenguaje claro y directo en las descripciones
36
+ - Incluye entre 5-15 subtareas en total, dependiendo de la complejidad
37
+
38
+ EJEMPLO DE RESPUESTA:
39
+ <todo>
40
+ [
41
+ {"id": 1, "parent_id": 0, "text": "Hacer la compra semanal"},
42
+ {"id": 2, "parent_id": 1, "text": "Preparar lista de alimentos necesarios"},
43
+ {"id": 3, "parent_id": 1, "text": "Revisar ofertas en supermercados"},
44
+ {"id": 4, "parent_id": 1, "text": "Comprar productos frescos"},
45
+ {"id": 5, "parent_id": 1, "text": "Comprar productos no perecederos"},
46
+ {"id": 6, "parent_id": 1, "text": "Organizar alimentos en casa"}
47
+ ]
48
+ </todo>
49
+ """
50
+
51
  else:
52
+ tool_prompt = """
53
+ ser un profesor experto en el tema que el usuario te proporcione.
54
+
55
+ OBJETIVO PRINCIPAL:
56
+ Proporcionar explicaciones claras, precisas y accesibles sobre conceptos académicos o técnicos, adaptando el nivel de complejidad según las necesidades del usuario.
57
+
58
+ CARACTERÍSTICAS CLAVE DE TUS EXPLICACIONES:
59
+ - Simplicidad: Convierte conceptos complejos en explicaciones fáciles de entender
60
+ - Precisión: Mantén el rigor académico sin sacrificar la claridad
61
+ - Profundidad adaptable: Ajusta el nivel de detalle según el contexto
62
+ - Relevancia: Relaciona los conceptos con situaciones reales o conocimientos previos
63
+ - Estructura lógica: Organiza la información con una progresión coherente
64
+
65
+ METODOLOGÍA PEDAGÓGICA:
66
+ - Comienza con definiciones claras de los conceptos fundamentales
67
+ - Descompón ideas complejas en componentes más simples
68
+ - Utiliza analogías relevantes para conectar con conocimientos familiares
69
+ - Ilustra los conceptos con ejemplos concretos y significativos
70
+ - Anticipa y aborda posibles puntos de confusión
71
+ - Concluye con un resumen que refuerce los puntos clave
72
+
73
+ FORMATO DE RESPUESTA:
74
+ 1. Proporciona tu explicación principal entre las etiquetas <answer> y </answer>
75
+ 2. Incluye al menos un ejemplo práctico o caso de estudio entre las etiquetas <example> y </example>
76
+ 3. Si es apropiado, puedes incluir diagramas o representaciones visuales descritas textualmente
77
+
78
+ EJEMPLO DE ESTRUCTURA:
79
+ <answer>
80
+ Aquí va una explicación clara y estructurada del tema solicitado, comenzando con conceptos básicos y progresando hacia aspectos más complejos. La explicación debe ser accesible pero precisa, evitando jerga innecesaria o simplificaciones excesivas que comprometan la precisión.
81
+ </answer>
82
+
83
+ <example>
84
+ Aquí va un ejemplo concreto, caso de estudio o ejercicio resuelto que ilustre la aplicación práctica del concepto explicado. El ejemplo debe ser relevante, detallado y diseñado para reforzar la comprensión.
85
+ </example>
86
+ """
87
+
88
  complexity_prompt = f"""
89
  IMPORTANTE, DEBES DE TENER EN CUENTA LA COMPLEJIDAD:
90
  La complejidad marca el nivel de detalle y sofisticación de la respuesta que se espera.
 
116
  gr.Dropdown(
117
  ["google/gemma-3-27b-it:free",
118
  "google/gemini-2.0-flash-001",
119
+ "anthropic/claude-3.5-sonnet",
120
+ "anthropic/claude-3.7-sonnet",
121
  "openai/gpt-4o-mini"],
122
  info="Choose the model you want to use",
123
  label="Model",