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