Spaces:
No application file
No application file
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 |
|