miguelcastroe commited on
Commit
4556e03
·
verified ·
1 Parent(s): 8e94484

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -35
app.py CHANGED
@@ -1,21 +1,9 @@
1
- import gradio as gr
2
- from transformers import GPT2Tokenizer, GPT2LMHeadModel
3
- import torch
4
-
5
- # Check if a GPU is available, otherwise use CPU
6
- device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
7
-
8
- # Load GPT-2 model and tokenizer
9
- model_name = "gpt2"
10
- tokenizer = GPT2Tokenizer.from_pretrained(model_name)
11
- model = GPT2LMHeadModel.from_pretrained(model_name).to(device)
12
-
13
  def evaluar_prompt(prompt):
14
  try:
15
  # Encode the prompt
16
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
17
 
18
- # Generate text
19
  outputs = model.generate(
20
  inputs["input_ids"],
21
  max_length=150,
@@ -27,9 +15,10 @@ def evaluar_prompt(prompt):
27
  temperature=0.7
28
  )
29
 
30
- # Decode the generated text
31
  generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
32
 
 
33
  claridad_consejo = ""
34
  logica_consejo = ""
35
  relevancia_consejo = ""
@@ -64,31 +53,24 @@ def evaluar_prompt(prompt):
64
  else:
65
  evidencia_consejo = "Considera pedir explícitamente ejemplos específicos o evidencia para obtener respuestas más detalladas y fundamentadas."
66
 
 
67
  sugerencias = "### Sugerencias para Mejorar:\n"
68
- sugerencias += f"\n* **Claridad:** {claridad_consejo}"
69
- sugerencias += f"\n* **Lógica:** {logica_consejo}"
70
- sugerencias += f"\n* **Relevancia:** {relevancia_consejo}"
71
- sugerencias += f"\n* **Evidencia:** {evidencia_consejo}"
 
 
 
 
 
 
72
 
73
- if not any([claridad_consejo, logica_consejo, relevancia_consejo, evidencia_consejo]):
74
- sugerencias += "\nTu prompt está bien construido y no presenta áreas importantes para mejorar."
 
75
 
76
  return sugerencias, 85
77
 
78
  except Exception as e:
79
  return str(e), "Error"
80
-
81
- def interfaz():
82
- with gr.Blocks() as demo:
83
- prompt_input = gr.Textbox(label="Escribe tu prompt aquí:")
84
- feedback_output = gr.Textbox(label="Retroalimentación:", interactive=False)
85
- calificacion_output = gr.Number(label="Calificación Final:", interactive=False)
86
- evaluar_button = gr.Button("Evaluar Prompt")
87
-
88
- evaluar_button.click(evaluar_prompt, inputs=prompt_input, outputs=[feedback_output, calificacion_output])
89
-
90
- return demo
91
-
92
- # Run the interface
93
- demo = interfaz()
94
- demo.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  def evaluar_prompt(prompt):
2
  try:
3
  # Encode the prompt
4
  inputs = tokenizer(prompt, return_tensors="pt").to(device)
5
 
6
+ # Generate text (though this step isn't really affecting your feedback)
7
  outputs = model.generate(
8
  inputs["input_ids"],
9
  max_length=150,
 
15
  temperature=0.7
16
  )
17
 
18
+ # Decode the generated text (not crucial for the feedback)
19
  generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
20
 
21
+ # Initialize variables to store detailed advice
22
  claridad_consejo = ""
23
  logica_consejo = ""
24
  relevancia_consejo = ""
 
53
  else:
54
  evidencia_consejo = "Considera pedir explícitamente ejemplos específicos o evidencia para obtener respuestas más detalladas y fundamentadas."
55
 
56
+ # Compile suggestions
57
  sugerencias = "### Sugerencias para Mejorar:\n"
58
+
59
+ # Add feedback for each category only if there is something to improve
60
+ if claridad_consejo != "Tu prompt es claro y está bien definido, lo que facilita un análisis efectivo.":
61
+ sugerencias += f"\n* **Claridad:** {claridad_consejo}"
62
+ if logica_consejo != "El prompt evita términos subjetivos, lo que ayuda a mantener un enfoque objetivo.":
63
+ sugerencias += f"\n* **Lógica:** {logica_consejo}"
64
+ if relevancia_consejo != "El prompt es relevante y está alineado con el objetivo de mejorar la experiencia del cliente.":
65
+ sugerencias += f"\n* **Relevancia:** {relevancia_consejo}"
66
+ if evidencia_consejo != "El prompt ya solicita evidencia, lo cual es positivo para un análisis detallado.":
67
+ sugerencias += f"\n* **Evidencia:** {evidencia_consejo}"
68
 
69
+ # If everything is fine, suggest no improvement
70
+ if not sugerencias.strip() or "### Sugerencias para Mejorar:\n" == sugerencias:
71
+ sugerencias = "Tu prompt está bien construido y no presenta áreas importantes para mejorar."
72
 
73
  return sugerencias, 85
74
 
75
  except Exception as e:
76
  return str(e), "Error"