miguelcastroe commited on
Commit
8e94484
·
verified ·
1 Parent(s): 34e8486

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -19
app.py CHANGED
@@ -1,3 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
  def evaluar_prompt(prompt):
2
  try:
3
  # Encode the prompt
@@ -6,19 +18,18 @@ def evaluar_prompt(prompt):
6
  # Generate text
7
  outputs = model.generate(
8
  inputs["input_ids"],
9
- max_length=150, # Limit max_length for faster results
10
- num_return_sequences=1,
11
- no_repeat_ngram_size=2,
12
- do_sample=True,
13
- top_k=50,
14
- top_p=0.95,
15
  temperature=0.7
16
  )
17
 
18
  # Decode the generated text
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,26 +64,31 @@ def evaluar_prompt(prompt):
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
- # Combine the feedback into suggestions
60
  sugerencias += f"\n* **Claridad:** {claridad_consejo}"
61
  sugerencias += f"\n* **Lógica:** {logica_consejo}"
62
  sugerencias += f"\n* **Relevancia:** {relevancia_consejo}"
63
  sugerencias += f"\n* **Evidencia:** {evidencia_consejo}"
64
 
65
- # If no advice is necessary, indicate that the prompt is strong
66
- if all(
67
- consejo == "Tu prompt es claro y está bien definido, lo que facilita un análisis efectivo." or
68
- consejo == "El prompt evita términos subjetivos, lo que ayuda a mantener un enfoque objetivo." or
69
- consejo == "El prompt es relevante y está alineado con el objetivo de mejorar la experiencia del cliente." or
70
- consejo == "El prompt ya solicita evidencia, lo cual es positivo para un análisis detallado."
71
- for consejo in [claridad_consejo, logica_consejo, relevancia_consejo, evidencia_consejo]
72
- ):
73
  sugerencias += "\nTu prompt está bien construido y no presenta áreas importantes para mejorar."
74
 
75
- return sugerencias, 85 # Returning suggestions and an arbitrary score as an example
76
 
77
  except Exception as e:
78
  return str(e), "Error"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
 
18
  # Generate text
19
  outputs = model.generate(
20
  inputs["input_ids"],
21
+ max_length=150,
22
+ num_return_sequences=1,
23
+ no_repeat_ngram_size=2,
24
+ do_sample=True,
25
+ top_k=50,
26
+ top_p=0.95,
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
  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()