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

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -73
app.py CHANGED
@@ -1,76 +1,20 @@
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,
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 (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 = ""
25
- evidencia_consejo = ""
26
-
27
- # Evaluate clarity
28
- if len(prompt.split()) < 5:
29
- claridad_consejo = "Tu prompt es muy corto, lo que puede generar ambigüedad. Intenta expandirlo para proporcionar más contexto o detalles específicos."
30
- elif len(prompt.split()) > 20:
31
- claridad_consejo = "Tu prompt es muy largo. Considera simplificarlo para que sea más directo y fácil de entender."
32
- else:
33
- claridad_consejo = "Tu prompt es claro y está bien definido, lo que facilita un análisis efectivo."
34
-
35
- # Evaluate logic
36
- subjective_terms = ["mejor", "peor", "único", "excelente", "terrible"]
37
- if any(word in prompt.lower() for word in subjective_terms):
38
- logica_consejo = f"Palabras como '{', '.join([w for w in subjective_terms if w in prompt.lower()])}' sugieren una perspectiva subjetiva. Reformula el prompt para enfocarte en criterios objetivos."
39
- else:
40
- logica_consejo = "El prompt evita términos subjetivos, lo que ayuda a mantener un enfoque objetivo."
41
 
42
- # Evaluate relevance
43
- relevant_terms = ["cliente", "experiencia", "empresa", "servicio", "producto"]
44
- if any(word in prompt.lower() for word in relevant_terms):
45
- relevancia_consejo = "El prompt es relevante y está alineado con el objetivo de mejorar la experiencia del cliente."
46
- else:
47
- relevancia_consejo = "El prompt podría no estar directamente relacionado con el objetivo principal. Asegúrate de que aborde claramente la cuestión principal."
48
-
49
- # Evaluate evidence request
50
- evidence_terms = ["evidencia", "pruebas", "demuestra", "ejemplos", "citas", "datos"]
51
- if any(word in prompt.lower() for word in evidence_terms):
52
- evidencia_consejo = "El prompt ya solicita evidencia, lo cual es positivo para un análisis detallado."
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"
 
 
1
+ import gradio as gr
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
 
3
+ def evaluar_prompt(prompt):
4
+ # Simple logic to return the prompt and a static score
5
+ return f"Evaluating prompt: {prompt}", 85
6
+
7
+ def interfaz():
8
+ with gr.Blocks() as demo:
9
+ prompt_input = gr.Textbox(label="Escribe tu prompt aquí:")
10
+ feedback_output = gr.Textbox(label="Retroalimentación:", interactive=False)
11
+ calificacion_output = gr.Number(label="Calificación Final:", interactive=False)
12
+ evaluar_button = gr.Button("Evaluar Prompt")
 
 
 
 
 
 
13
 
14
+ evaluar_button.click(evaluar_prompt, inputs=prompt_input, outputs=[feedback_output, calificacion_output])
15
+
16
+ return demo
 
 
 
 
 
 
 
 
 
 
 
 
17
 
18
+ # Run the interface
19
+ demo = interfaz()
20
+ demo.launch()