#!/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()