Final_Assignment / main_refactored.py
tonthatthienvu's picture
feat: major refactoring - transform monolithic architecture into modular system
ba68fc1
raw
history blame
2.43 kB
#!/usr/bin/env python3
"""
Refactored GAIA Solver using new modular architecture
"""
import os
import sys
from pathlib import Path
# Add the current directory to Python path for imports
current_dir = Path(__file__).parent
if str(current_dir) not in sys.path:
sys.path.insert(0, str(current_dir))
from gaia import GAIASolver, Config
def main():
"""Main function to test the refactored GAIA solver"""
print("πŸš€ GAIA Solver - Refactored Architecture")
print("=" * 50)
try:
# Initialize configuration
config = Config()
print(f"πŸ“Š Available models: {[m.value for m in config.get_available_models()]}")
print(f"πŸ”§ Fallback chain: {[m.value for m in config.get_fallback_chain()]}")
# Initialize solver
solver = GAIASolver(config)
# Get system status
status = solver.get_system_status()
print(f"\nπŸ–₯️ System Status:")
print(f" Models: {len(status['models'])} providers")
print(f" Available: {status['available_providers']}")
print(f" Current: {status['current_provider']}")
# Test with a sample question
print("\nπŸ§ͺ Testing with sample question...")
sample_question = {
"task_id": "test_001",
"question": "What is 2 + 2?",
"level": 1
}
result = solver.solve_question(sample_question)
print(f"\nπŸ“‹ Results:")
print(f" Answer: {result.answer}")
print(f" Confidence: {result.confidence:.2f}")
print(f" Method: {result.method_used}")
print(f" Time: {result.execution_time:.2f}s")
# Test random question if available
print("\n🎲 Testing with random question...")
random_result = solver.solve_random_question()
if random_result:
print(f" Answer: {random_result.answer[:100]}...")
print(f" Confidence: {random_result.confidence:.2f}")
print(f" Time: {random_result.execution_time:.2f}s")
else:
print(" No random questions available")
except Exception as e:
print(f"❌ Error: {e}")
print("\nπŸ’‘ Make sure you have API keys configured:")
print("1. GEMINI_API_KEY")
print("2. HUGGINGFACE_TOKEN")
print("3. KLUSTER_API_KEY (optional)")
if __name__ == "__main__":
main()