Spaces:
Running
Running
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() |