File size: 3,610 Bytes
abcde8f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/usr/bin/env python3
"""
Test script for debugging Hugging Face Spaces deployment issues
"""

import logging
import time

import requests

# Set up logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)

def test_basic_connectivity():
    """Test basic internet connectivity"""
    logger.info("Testing basic connectivity...")
    
    test_urls = [
        "https://ollama.com",
        "https://huggingface.co",
        "https://google.com"
    ]
    
    for url in test_urls:
        try:
            logger.info(f"Testing connection to {url}")
            response = requests.get(url, timeout=10)
            logger.info(f"βœ… {url} - Status: {response.status_code}")
        except Exception as e:
            logger.error(f"❌ {url} - Error: {e}")

def test_ollama_scraping():
    """Test Ollama website scraping"""
    logger.info("Testing Ollama scraping...")
    
    try:
        # Test basic page fetch
        url = "https://ollama.com/library/llama2"
        logger.info(f"Fetching {url}")
        
        session = requests.Session()
        session.headers.update({
            "User-Agent": "Turkish-MMLU-Benchmark/1.0",
            "Accept": "text/html",
        })
        session.timeout = 30
        
        response = session.get(url)
        logger.info(f"βœ… Ollama page fetch - Status: {response.status_code}")
        logger.info(f"Content length: {len(response.text)} characters")
        
        # Check if content contains expected elements
        if "llama2" in response.text.lower():
            logger.info("βœ… Content contains expected model name")
        else:
            logger.warning("⚠️ Content doesn't contain expected model name")
            
    except Exception as e:
        logger.error(f"❌ Ollama scraping test failed: {e}")

def test_model_validator():
    """Test the model validator"""
    logger.info("Testing model validator...")
    
    try:
        from model_validator import OllamaModelValidator
        
        validator = OllamaModelValidator()
        
        # Test with a known model
        result = validator.validate_ollama_model("llama2", "7b")
        
        logger.info(f"βœ… Model validation result: {result.get('valid', False)}")
        if result.get('valid'):
            logger.info(f"Parameter size: {result.get('parameter_size')}")
            logger.info(f"RAM requirements: {result.get('ram_requirements')}")
        else:
            logger.info(f"Validation error: {result.get('error')}")
            
    except Exception as e:
        logger.error(f"❌ Model validator test failed: {e}")

def test_data_manager():
    """Test the data manager"""
    logger.info("Testing data manager...")
    
    try:
        from data_manager import DataManager
        
        dm = DataManager()
        
        # Test leaderboard data
        leaderboard = dm.leaderboard_data
        logger.info(f"βœ… Leaderboard data loaded - {len(leaderboard)} rows")
        
        # Test model existence check
        result = dm.check_model_exists("llama2", "7b")
        logger.info(f"βœ… Model existence check: {result}")
        
    except Exception as e:
        logger.error(f"❌ Data manager test failed: {e}")

if __name__ == "__main__":
    logger.info("Starting Hugging Face Spaces compatibility tests...")
    
    test_basic_connectivity()
    time.sleep(1)
    
    test_ollama_scraping()
    time.sleep(1)
    
    test_model_validator()
    time.sleep(1)
    
    test_data_manager()
    
    logger.info("All tests completed!")