Update app.py
Browse files
app.py
CHANGED
@@ -16,11 +16,40 @@ class BasicAgent:
|
|
16 |
def __init__(self):
|
17 |
print("BasicAgent initialized.")
|
18 |
self.analizar_historia = AmbiguityClassifier()
|
|
|
19 |
def __call__(self, question: str) -> str:
|
20 |
print(f"Agent received question (first 50 chars): {question[:50]}...")
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
def run_and_submit_all( profile: gr.OAuthProfile | None):
|
26 |
"""
|
@@ -146,20 +175,58 @@ def run_and_submit_all( profile: gr.OAuthProfile | None):
|
|
146 |
# --- Build Gradio Interface using Blocks ---
|
147 |
with gr.Blocks() as demo:
|
148 |
gr.Markdown("# Basic Agent Evaluation Runner")
|
149 |
-
gr.Markdown(
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
|
164 |
gr.LoginButton()
|
165 |
|
|
|
16 |
def __init__(self):
|
17 |
print("BasicAgent initialized.")
|
18 |
self.analizar_historia = AmbiguityClassifier()
|
19 |
+
|
20 |
def __call__(self, question: str) -> str:
|
21 |
print(f"Agent received question (first 50 chars): {question[:50]}...")
|
22 |
+
try:
|
23 |
+
resultado = self.analizar_historia(question)
|
24 |
+
|
25 |
+
# Formatear la respuesta
|
26 |
+
respuesta = []
|
27 |
+
if resultado["tiene_ambiguedad"]:
|
28 |
+
respuesta.append("Se encontraron las siguientes ambigüedades:")
|
29 |
+
|
30 |
+
if resultado["ambiguedad_lexica"]:
|
31 |
+
respuesta.append("\nAmbigüedades léxicas:")
|
32 |
+
for amb in resultado["ambiguedad_lexica"]:
|
33 |
+
respuesta.append(f"- {amb}")
|
34 |
+
|
35 |
+
if resultado["ambiguedad_sintactica"]:
|
36 |
+
respuesta.append("\nAmbigüedades sintácticas:")
|
37 |
+
for amb in resultado["ambiguedad_sintactica"]:
|
38 |
+
respuesta.append(f"- {amb}")
|
39 |
+
|
40 |
+
respuesta.append(f"\nScore de ambigüedad: {resultado['score_ambiguedad']}")
|
41 |
+
respuesta.append("\nSugerencias de mejora:")
|
42 |
+
for sug in resultado["sugerencias"]:
|
43 |
+
respuesta.append(f"- {sug}")
|
44 |
+
else:
|
45 |
+
respuesta.append("No se encontraron ambigüedades en la historia de usuario.")
|
46 |
+
respuesta.append(f"Score de ambigüedad: {resultado['score_ambiguedad']}")
|
47 |
+
|
48 |
+
return "\n".join(respuesta)
|
49 |
+
except Exception as e:
|
50 |
+
error_msg = f"Error analizando la historia: {str(e)}"
|
51 |
+
print(error_msg)
|
52 |
+
return error_msg
|
53 |
|
54 |
def run_and_submit_all( profile: gr.OAuthProfile | None):
|
55 |
"""
|
|
|
175 |
# --- Build Gradio Interface using Blocks ---
|
176 |
with gr.Blocks() as demo:
|
177 |
gr.Markdown("# Basic Agent Evaluation Runner")
|
178 |
+
gr.Markdown("""
|
179 |
+
# 🔍 Detector de Ambigüedades en Historias de Usuario
|
180 |
+
|
181 |
+
Esta herramienta analiza historias de usuario en busca de ambigüedades léxicas y sintácticas,
|
182 |
+
proporcionando sugerencias para mejorarlas.
|
183 |
+
|
184 |
+
## 📝 Instrucciones:
|
185 |
+
1. Ingrese una historia de usuario en el campo de texto
|
186 |
+
2. Haga clic en "Analizar"
|
187 |
+
3. Revise los resultados y las sugerencias de mejora
|
188 |
+
|
189 |
+
""")
|
190 |
+
|
191 |
+
with gr.Tab("Análisis Individual"):
|
192 |
+
input_text = gr.Textbox(
|
193 |
+
label="Historia de Usuario",
|
194 |
+
placeholder="Como usuario quiero...",
|
195 |
+
lines=3
|
196 |
+
)
|
197 |
+
analyze_btn = gr.Button("Analizar")
|
198 |
+
output = gr.Textbox(
|
199 |
+
label="Resultados del Análisis",
|
200 |
+
lines=10
|
201 |
+
)
|
202 |
+
analyze_btn.click(
|
203 |
+
analyze_user_story,
|
204 |
+
inputs=[input_text],
|
205 |
+
outputs=[output]
|
206 |
+
)
|
207 |
+
|
208 |
+
with gr.Tab("Análisis Múltiple"):
|
209 |
+
input_stories = gr.Textbox(
|
210 |
+
label="Historias de Usuario (una por línea)",
|
211 |
+
placeholder="Como usuario quiero...\nComo administrador necesito...",
|
212 |
+
lines=5
|
213 |
+
)
|
214 |
+
analyze_multi_btn = gr.Button("Analizar Todas")
|
215 |
+
output_json = gr.JSON(label="Resultados del Análisis")
|
216 |
+
analyze_multi_btn.click(
|
217 |
+
analyze_multiple_stories,
|
218 |
+
inputs=[input_stories],
|
219 |
+
outputs=[output_json]
|
220 |
+
)
|
221 |
+
|
222 |
+
gr.Markdown("""
|
223 |
+
## 🚀 Ejemplos de Uso
|
224 |
+
|
225 |
+
Pruebe con estas historias de usuario:
|
226 |
+
- Como usuario quiero un sistema rápido y eficiente para gestionar mis tareas
|
227 |
+
- El sistema debe permitir exportar varios tipos de archivos
|
228 |
+
- Como administrador necesito acceder fácilmente a los reportes
|
229 |
+
""")
|
230 |
|
231 |
gr.LoginButton()
|
232 |
|