Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -420,35 +420,58 @@ def run_deep_dive_on_question(question):
|
|
| 420 |
if not result["success"]:
|
| 421 |
return f"**Error in Deep Dive Analysis:**\n{result.get('error', 'Unknown error')}"
|
| 422 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 423 |
output = f"**Question:** {result['question']}\n\n"
|
| 424 |
|
| 425 |
# Display each requirement and its result
|
| 426 |
-
if result
|
| 427 |
output += "## Analysis Requirements\n\n"
|
| 428 |
for i, req in enumerate(result["requirements"], 1):
|
| 429 |
output += f"**Requirement {i}:** {req.get('title', 'Untitled')}\n"
|
| 430 |
output += f"- {req.get('description', 'No description')}\n\n"
|
| 431 |
if "code" in req:
|
| 432 |
output += f"Generated Code:\n```python\n{req['code']}\n```\n\n"
|
|
|
|
|
|
|
| 433 |
|
| 434 |
# Display execution results
|
| 435 |
-
if result
|
| 436 |
output += "## Execution Results\n\n"
|
| 437 |
for i, res in enumerate(result["all_results"], 1):
|
| 438 |
output += f"**Requirement {i} Results:**\n"
|
| 439 |
-
if res
|
| 440 |
output += f"✓ Executed successfully\n"
|
| 441 |
-
output += f"```\n{res
|
| 442 |
else:
|
| 443 |
-
output += f"✗ Execution failed: {res
|
|
|
|
|
|
|
| 444 |
|
| 445 |
# Display synthesis & insights
|
| 446 |
-
|
| 447 |
-
|
|
|
|
|
|
|
|
|
|
| 448 |
|
| 449 |
return output
|
| 450 |
except Exception as exc:
|
| 451 |
-
|
|
|
|
| 452 |
|
| 453 |
|
| 454 |
# ---------------------------------------------------
|
|
|
|
| 420 |
if not result["success"]:
|
| 421 |
return f"**Error in Deep Dive Analysis:**\n{result.get('error', 'Unknown error')}"
|
| 422 |
|
| 423 |
+
# Check if we have empty results
|
| 424 |
+
if not result.get("requirements") and not result.get("all_results"):
|
| 425 |
+
return (
|
| 426 |
+
f"**Question:** {result['question']}\n\n"
|
| 427 |
+
f"⚠️ **No analysis requirements generated.** \n"
|
| 428 |
+
f"This may indicate:\n"
|
| 429 |
+
f"- The LLM couldn't parse the question clearly\n"
|
| 430 |
+
f"- API connectivity issue\n"
|
| 431 |
+
f"\nPlease try:\n"
|
| 432 |
+
f"- Rephrasing your question more specifically\n"
|
| 433 |
+
f"- Asking about specific metrics (30+@6, Yr1 NCL) or segments (FICO, Channel, City Tier)\n"
|
| 434 |
+
f"- Breaking down complex questions into simpler components\n\n"
|
| 435 |
+
f"**Raw Response:** {result.get('interpretation', 'No interpretation')}"
|
| 436 |
+
)
|
| 437 |
+
|
| 438 |
output = f"**Question:** {result['question']}\n\n"
|
| 439 |
|
| 440 |
# Display each requirement and its result
|
| 441 |
+
if result.get("requirements"):
|
| 442 |
output += "## Analysis Requirements\n\n"
|
| 443 |
for i, req in enumerate(result["requirements"], 1):
|
| 444 |
output += f"**Requirement {i}:** {req.get('title', 'Untitled')}\n"
|
| 445 |
output += f"- {req.get('description', 'No description')}\n\n"
|
| 446 |
if "code" in req:
|
| 447 |
output += f"Generated Code:\n```python\n{req['code']}\n```\n\n"
|
| 448 |
+
else:
|
| 449 |
+
output += "⚠️ No requirements generated\n\n"
|
| 450 |
|
| 451 |
# Display execution results
|
| 452 |
+
if result.get("all_results"):
|
| 453 |
output += "## Execution Results\n\n"
|
| 454 |
for i, res in enumerate(result["all_results"], 1):
|
| 455 |
output += f"**Requirement {i} Results:**\n"
|
| 456 |
+
if res.get("success"):
|
| 457 |
output += f"✓ Executed successfully\n"
|
| 458 |
+
output += f"```\n{res.get('result', 'No result')}\n```\n\n"
|
| 459 |
else:
|
| 460 |
+
output += f"✗ Execution failed: {res.get('error', 'Unknown error')}\n\n"
|
| 461 |
+
else:
|
| 462 |
+
output += "⚠️ No execution results\n\n"
|
| 463 |
|
| 464 |
# Display synthesis & insights
|
| 465 |
+
if result.get("interpretation"):
|
| 466 |
+
output += "## Analyst Interpretation\n\n"
|
| 467 |
+
output += f"{result['interpretation']}"
|
| 468 |
+
else:
|
| 469 |
+
output += "⚠️ No interpretation available"
|
| 470 |
|
| 471 |
return output
|
| 472 |
except Exception as exc:
|
| 473 |
+
import traceback
|
| 474 |
+
return f"**Deep Dive Analysis Error:**\n```\n{traceback.format_exc()}\n```"
|
| 475 |
|
| 476 |
|
| 477 |
# ---------------------------------------------------
|