File size: 4,099 Bytes
c262d1a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/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()