BasalGanglia's picture
πŸ”§ Fix 503 timeout: Port 7860 + Enhanced fallbacks + Better error handling
65be7f3 verified
#!/usr/bin/env python3
"""Performance validation script for hackathon demo functionality."""
import time
import app
def test_response_times():
"""Test response times for key hackathon demo queries."""
print("⚑ KGraph-MCP Performance Validation")
print("=" * 50)
print()
# Initialize agent system first
print("πŸš€ Initializing agent system...")
start = time.time()
planner, executor = app.initialize_agent_system()
# Set global variables like the main app does
app.planner_agent = planner
app.executor_agent = executor
init_time = (time.time() - start) * 1000
print(f" πŸ€– Agent Initialization: {init_time:.0f}ms {'βœ…' if init_time < 10000 else '🟑'}")
if planner is None or executor is None:
print(" ❌ Agent initialization failed!")
print(" πŸš€ Platform Status: ❌ NOT READY")
return
print(" βœ… Agent system ready!")
print()
queries = [
"analyze customer sentiment from reviews",
"summarize technical documentation for team",
"check code quality and security issues",
"perform sentiment analysis on feedback",
"generate structured summaries of research"
]
total_time = 0
successful_queries = 0
for i, query in enumerate(queries, 1):
print(f"πŸ“‹ Test {i}/5: {query[:45]}...")
start = time.time()
try:
result = app.handle_generate_plan(query)
end = time.time()
response_time = (end - start) * 1000
status = result.get("status", "unknown")
steps = len(result.get("planned_steps", []))
print(f" ⏱️ Response Time: {response_time:.0f}ms")
print(f" πŸ“Š Status: {status}")
print(f" 🎯 Planned Steps: {steps}")
if status == "success":
performance = "βœ… EXCELLENT" if response_time < 2000 else "🟑 ACCEPTABLE" if response_time < 5000 else "❌ SLOW"
print(f" πŸš€ Performance: {performance}")
total_time += response_time
successful_queries += 1
else:
print(f" ❌ Error: {result.get('message', 'Unknown error')}")
except Exception as e:
print(f" πŸ’₯ Exception: {e}")
print()
# Calculate results
avg_time = total_time / successful_queries if successful_queries > 0 else float("inf")
print("πŸ“Š Performance Summary")
print("=" * 30)
print(f"βœ… Successful Queries: {successful_queries}/{len(queries)}")
if successful_queries > 0:
print(f"⚑ Average Response Time: {avg_time:.0f}ms")
print("🎯 Target: < 2000ms")
if avg_time < 2000:
print("πŸ† HACKATHON READY: Excellent performance!")
elif avg_time < 5000:
print("🟑 ACCEPTABLE: Good for demo, could optimize")
else:
print("❌ NEEDS OPTIMIZATION: Too slow for competition")
else:
print("❌ NO SUCCESSFUL QUERIES: System needs investigation")
print("\nπŸ§ͺ Additional Validation:")
# Test interface creation
start = time.time()
interface = app.create_gradio_interface()
interface_time = (time.time() - start) * 1000
print(f"πŸ“± Interface Creation: {interface_time:.0f}ms {'βœ…' if interface_time < 1000 else '🟑'}")
print(f"\nπŸš€ Platform Status: {'βœ… HACKATHON READY' if avg_time < 2000 and successful_queries >= 4 else '🟑 NEEDS ATTENTION'}")
if __name__ == "__main__":
test_response_times()