Final_Assignment / tests /test_classification_only.py
GAIA Developer
๐Ÿงช Add comprehensive test infrastructure and async testing system
c262d1a
#!/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()