miguelcastroe commited on
Commit
e403771
·
verified ·
1 Parent(s): 2244c96

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -18
app.py CHANGED
@@ -24,7 +24,7 @@ model_name = "gpt2" # or "gpt2-medium", "gpt2-large", "gpt2-xl"
24
  tokenizer = GPT2Tokenizer.from_pretrained(model_name)
25
  model = GPT2LMHeadModel.from_pretrained(model_name).to(device)
26
 
27
- # Function to generate text using GPT-2
28
  def evaluar_prompt(prompt):
29
  try:
30
  # Encode the prompt
@@ -45,43 +45,50 @@ def evaluar_prompt(prompt):
45
  # Decode the generated text
46
  generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
47
 
48
- # Initialize variables to store detailed advice (using the generated text as context)
49
  claridad_consejo = ""
50
  logica_consejo = ""
51
  relevancia_consejo = ""
52
  evidencia_consejo = ""
53
-
54
  # Evaluate clarity
55
  if len(prompt.split()) < 5:
56
  claridad_consejo = "Tu prompt es muy corto, lo que puede generar ambigüedad. Intenta expandirlo para proporcionar más contexto o detalles específicos."
 
 
 
57
  # Evaluate logic
58
  if any(word in prompt.lower() for word in ["mejor", "peor", "único"]):
59
  logica_consejo = f"Palabras como '{', '.join([w for w in ['mejor', 'peor', 'único'] if w in prompt.lower()])}' sugieren una perspectiva subjetiva. Reformula el prompt para enfocarte en criterios objetivos."
 
 
 
60
  # Evaluate relevance
61
- if not any(word in prompt.lower() for word in ["hablar", "describe", "explica", "analiza"]):
62
- relevancia_consejo = "Tu prompt podría no abordar directamente el problema central. Asegúrate de que esté directamente relacionado con la información o acción que buscas."
 
 
 
63
  # Evaluate evidence request
64
- if not any(word in prompt.lower() for word in ["evidencia", "pruebas", "demuestra"]):
65
- evidencia_consejo = "Solicitar evidencia fortalece tu prompt al basarlo en hechos verificables. Considera pedir explícitamente evidencia o ejemplos."
 
 
66
 
67
  # Compile suggestions
68
  sugerencias = "### Sugerencias para Mejorar:\n"
69
-
70
- # Provide specific advice based on the issues identified
71
- if claridad_consejo:
72
- sugerencias += f"\n* **Claridad:** {claridad_consejo}"
73
- if logica_consejo:
74
- sugerencias += f"\n* **Lógica:** {logica_consejo}"
75
- if relevancia_consejo:
76
- sugerencias += f"\n* **Relevancia:** {relevancia_consejo}"
77
- if evidencia_consejo:
78
- sugerencias += f"\n* **Evidencia:** {evidencia_consejo}"
79
 
80
  # If no advice is necessary, indicate that the prompt is strong
81
  if not any([claridad_consejo, logica_consejo, relevancia_consejo, evidencia_consejo]):
82
  sugerencias += "\nTu prompt está bien construido y no presenta áreas importantes para mejorar."
83
 
84
- return sugerencias, 65 # Returning only the suggestions and an arbitrary score
85
 
86
  except Exception as e:
87
  return str(e), "Error"
 
24
  tokenizer = GPT2Tokenizer.from_pretrained(model_name)
25
  model = GPT2LMHeadModel.from_pretrained(model_name).to(device)
26
 
27
+ # Function to generate text using GPT-2 and evaluate the prompt
28
  def evaluar_prompt(prompt):
29
  try:
30
  # Encode the prompt
 
45
  # Decode the generated text
46
  generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
47
 
48
+ # Initialize variables to store detailed advice
49
  claridad_consejo = ""
50
  logica_consejo = ""
51
  relevancia_consejo = ""
52
  evidencia_consejo = ""
53
+
54
  # Evaluate clarity
55
  if len(prompt.split()) < 5:
56
  claridad_consejo = "Tu prompt es muy corto, lo que puede generar ambigüedad. Intenta expandirlo para proporcionar más contexto o detalles específicos."
57
+ else:
58
+ claridad_consejo = "Tu prompt es claro y está bien definido, lo que facilita un análisis efectivo."
59
+
60
  # Evaluate logic
61
  if any(word in prompt.lower() for word in ["mejor", "peor", "único"]):
62
  logica_consejo = f"Palabras como '{', '.join([w for w in ['mejor', 'peor', 'único'] if w in prompt.lower()])}' sugieren una perspectiva subjetiva. Reformula el prompt para enfocarte en criterios objetivos."
63
+ else:
64
+ logica_consejo = "El prompt evita términos subjetivos, lo que ayuda a mantener un enfoque objetivo."
65
+
66
  # Evaluate relevance
67
+ if any(word in prompt.lower() for word in ["cliente", "experiencia", "empresa", "servicio"]):
68
+ relevancia_consejo = "El prompt es relevante y está alineado con el objetivo de mejorar la experiencia del cliente."
69
+ else:
70
+ relevancia_consejo = "El prompt podría no estar directamente relacionado con el objetivo principal. Asegúrate de que aborde claramente la cuestión principal."
71
+
72
  # Evaluate evidence request
73
+ if any(word in prompt.lower() for word in ["evidencia", "pruebas", "demuestra", "ejemplos"]):
74
+ evidencia_consejo = "El prompt ya solicita evidencia, lo cual es positivo para un análisis detallado."
75
+ else:
76
+ evidencia_consejo = "Considera pedir explícitamente ejemplos específicos o evidencia sobre cómo mejorar la experiencia del cliente, para obtener respuestas más detalladas y fundamentadas."
77
 
78
  # Compile suggestions
79
  sugerencias = "### Sugerencias para Mejorar:\n"
80
+
81
+ # Combine the feedback into suggestions
82
+ sugerencias += f"\n* **Claridad:** {claridad_consejo}"
83
+ sugerencias += f"\n* **Lógica:** {logica_consejo}"
84
+ sugerencias += f"\n* **Relevancia:** {relevancia_consejo}"
85
+ sugerencias += f"\n* **Evidencia:** {evidencia_consejo}"
 
 
 
 
86
 
87
  # If no advice is necessary, indicate that the prompt is strong
88
  if not any([claridad_consejo, logica_consejo, relevancia_consejo, evidencia_consejo]):
89
  sugerencias += "\nTu prompt está bien construido y no presenta áreas importantes para mejorar."
90
 
91
+ return sugerencias, 85 # Returning suggestions and an arbitrary score as an example
92
 
93
  except Exception as e:
94
  return str(e), "Error"