#!/usr/bin/env python3 """ Test just the classification system for the chess question to show multi-agent routing """ from question_classifier import QuestionClassifier from gaia_web_loader import GAIAQuestionLoaderWeb def test_chess_classification(): """Test classification for chess question""" task_id = "cca530fc-4052-43b2-b130-b30968d8aa44" print(f"🧠 Testing Multi-Agent Classification: Chess Question") print("=" * 60) # Initialize components classifier = QuestionClassifier() loader = GAIAQuestionLoaderWeb() # Get the question question_data = loader.get_question_by_id(task_id) question_text = question_data.get('question', '') file_name = question_data.get('file_name', '') print(f"šŸ“ Question: {question_text}") print(f"šŸ“„ Image file: {file_name}") # Classify the question print(f"\n🧠 QUESTION CLASSIFICATION:") print("-" * 40) classification = classifier.classify_question(question_text, file_name) routing = classifier.get_routing_recommendation(classification) print(f"šŸŽÆ Primary Agent: {classification['primary_agent']}") print(f"šŸ¤ Secondary Agents: {', '.join(classification['secondary_agents'])}") print(f"šŸ“Š Complexity: {classification['complexity']}/5") print(f"šŸŽ² Confidence: {classification['confidence']:.3f}") print(f"šŸ”§ Tools Needed: {', '.join(classification['tools_needed'])}") print(f"šŸŽ¬ Requires Multimodal: {classification['requires_multimodal']}") print(f"šŸ“ˆ Estimated Steps: {classification['estimated_steps']}") print(f"šŸ’­ Reasoning: {classification['reasoning']}") print(f"\nšŸš€ ROUTING PLAN:") print("-" * 40) print(f"šŸŽÆ Primary Route: {routing['primary_route']} agent") print(f"šŸ¤ Coordination Needed: {'YES' if routing['requires_coordination'] else 'NO'}") print(f"⚔ Parallel Execution: {'YES' if routing['parallel_execution'] else 'NO'}") print(f"ā±ļø Estimated Duration: {routing['estimated_duration']}") print(f"\nšŸ”§ SPECIAL REQUIREMENTS:") for req in routing['special_requirements']: print(f" • {req}") print(f"\nšŸŽ® MULTI-AGENT WORKFLOW:") print("-" * 40) print(f"1. šŸŽ¬ MULTIMEDIA AGENT (Primary):") print(f" - Load chess position image: {file_name}") print(f" - Use Gemini Vision API for board analysis") print(f" - Extract piece positions and current game state") print(f" - Identify chess pieces and their locations") print(f"\n2. 🧮 LOGIC/MATH AGENT (Secondary):") print(f" - Receive board state from multimedia agent") print(f" - Apply chess rules and strategy analysis") print(f" - Calculate possible moves for black") print(f" - Identify winning move sequences") print(f" - Verify move guarantees a win") print(f"\n3. šŸŽÆ COORDINATION:") print(f" - Multimedia agent extracts visual board state") print(f" - Logic agent processes chess strategy") print(f" - Combined result: algebraic notation move") print(f"\nāœ… CLASSIFICATION SUMMARY:") print("=" * 60) print(f"This question demonstrates perfect multi-agent classification:") print(f"• Primary: {classification['primary_agent']} (image analysis)") print(f"• Secondary: {', '.join(classification['secondary_agents'])} (chess strategy)") print(f"• Complexity: {classification['complexity']}/5 (high)") print(f"• Confidence: {classification['confidence']:.1%}") print(f"• Multi-modal: {classification['requires_multimodal']}") print(f"• Coordination required: {routing['requires_coordination']}") print(f"\nšŸš€ This showcases the LLM classifier's ability to:") print(f" āœ… Detect image analysis requirements") print(f" āœ… Identify need for logical reasoning") print(f" āœ… Recommend multi-agent coordination") print(f" āœ… Assess high complexity correctly") print(f" āœ… Provide detailed routing plan") if __name__ == "__main__": test_chess_classification()