Update app.py
Browse files
app.py
CHANGED
@@ -172,9 +172,62 @@ def run_and_submit_all( profile: gr.OAuthProfile | None):
|
|
172 |
return status_message, results_df
|
173 |
|
174 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
|
|
|
172 |
return status_message, results_df
|
173 |
|
174 |
|
175 |
+
# Inicializar el clasificador
|
176 |
+
classifier = AmbiguityClassifier()
|
177 |
+
|
178 |
+
def analyze_user_story(user_story: str) -> str:
|
179 |
+
"""Analiza una historia de usuario y retorna los resultados formateados."""
|
180 |
+
if not user_story.strip():
|
181 |
+
return "Por favor, ingrese una historia de usuario para analizar."
|
182 |
+
|
183 |
+
# Analizar la historia
|
184 |
+
result = classifier(user_story)
|
185 |
+
|
186 |
+
# Formatear resultados
|
187 |
+
output = []
|
188 |
+
output.append(f"📝 Historia analizada:\n{user_story}\n")
|
189 |
+
output.append(f"🎯 Score de ambigüedad: {result['score_ambiguedad']}")
|
190 |
+
|
191 |
+
if result['ambiguedad_lexica']:
|
192 |
+
output.append("\n📚 Ambigüedades léxicas encontradas:")
|
193 |
+
for amb in result['ambiguedad_lexica']:
|
194 |
+
output.append(f"• {amb}")
|
195 |
+
|
196 |
+
if result['ambiguedad_sintactica']:
|
197 |
+
output.append("\n🔍 Ambigüedades sintácticas encontradas:")
|
198 |
+
for amb in result['ambiguedad_sintactica']:
|
199 |
+
output.append(f"• {amb}")
|
200 |
+
|
201 |
+
if result['sugerencias']:
|
202 |
+
output.append("\n💡 Sugerencias de mejora:")
|
203 |
+
for sug in result['sugerencias']:
|
204 |
+
output.append(f"• {sug}")
|
205 |
+
|
206 |
+
return "\n".join(output)
|
207 |
+
|
208 |
+
def analyze_multiple_stories(user_stories: str) -> str:
|
209 |
+
"""Analiza múltiples historias de usuario separadas por líneas."""
|
210 |
+
if not user_stories.strip():
|
211 |
+
return "Por favor, ingrese al menos una historia de usuario para analizar."
|
212 |
+
|
213 |
+
stories = [s.strip() for s in user_stories.split('\n') if s.strip()]
|
214 |
+
all_results = []
|
215 |
+
|
216 |
+
for i, story in enumerate(stories, 1):
|
217 |
+
result = classifier(story)
|
218 |
+
story_result = {
|
219 |
+
"historia": story,
|
220 |
+
"score": result['score_ambiguedad'],
|
221 |
+
"ambiguedades_lexicas": result['ambiguedad_lexica'],
|
222 |
+
"ambiguedades_sintacticas": result['ambiguedad_sintactica'],
|
223 |
+
"sugerencias": result['sugerencias']
|
224 |
+
}
|
225 |
+
all_results.append(story_result)
|
226 |
+
|
227 |
+
return json.dumps(all_results, indent=2, ensure_ascii=False)
|
228 |
+
|
229 |
# --- Build Gradio Interface using Blocks ---
|
230 |
+
with gr.Blocks(title="Detector de Ambigüedades en Historias de Usuario") as demo:
|
|
|
231 |
gr.Markdown("""
|
232 |
# 🔍 Detector de Ambigüedades en Historias de Usuario
|
233 |
|