File size: 2,680 Bytes
66fef64
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""
Test l'API /explore avec des exemples de films
"""
import requests
import json

# Configuration
API_URL = "http://localhost:8000"
API_TOKEN = "your-api-token"  # Remplacez par votre token

def test_explore_endpoint():
    """Test l'endpoint /explore avec différents scénarios"""
    
    # Lire les métadonnées pour avoir des IDs de test
    with open("app/data/movie_metadata.json", "r") as f:
        metadata = json.load(f)
    
    # Prendre les premiers films comme exemples
    movie_ids = list(metadata.keys())[:5]
    print(f"Films de test disponibles : {[metadata[mid]['title'] for mid in movie_ids]}")
    
    # Test 1: Recherche avec 1 film aimé
    print("\n🎬 Test 1: Recherche avec 1 film aimé")
    test_request = {
        "liked_ids": [int(movie_ids[0])],
        "disliked_ids": [],
        "top_k": 10
    }
    
    try:
        response = requests.post(
            f"{API_URL}/explore",
            json=test_request,
            headers={"Authorization": f"Bearer {API_TOKEN}"}
        )
        
        if response.status_code == 200:
            data = response.json()
            print(f"✅ Trouvé {len(data['movies'])} films similaires")
            print(f"Film aimé: {metadata[movie_ids[0]]['title']}")
            print("Films recommandés:")
            for movie in data['movies'][:3]:
                print(f"  - {movie['title']} ({movie['year']}) - {movie['genres']}")
        else:
            print(f"❌ Erreur {response.status_code}: {response.text}")
            
    except Exception as e:
        print(f"❌ Erreur de connexion: {e}")
        print("💡 Vérifiez que votre API_TOKEN est correct dans le .env")

    # Test 2: Recherche avec 2 films aimés
    print("\n🎬 Test 2: Recherche avec 2 films aimés")
    test_request = {
        "liked_ids": [int(movie_ids[0]), int(movie_ids[1])],
        "disliked_ids": [],
        "top_k": 10
    }
    
    try:
        response = requests.post(
            f"{API_URL}/explore",
            json=test_request,
            headers={"Authorization": f"Bearer {API_TOKEN}"}
        )
        
        if response.status_code == 200:
            data = response.json()
            print(f"✅ Trouvé {len(data['movies'])} films similaires")
            print(f"Films aimés: {metadata[movie_ids[0]]['title']}, {metadata[movie_ids[1]]['title']}")
            print("Barycenter:", data['bary'])
        else:
            print(f"❌ Erreur {response.status_code}: {response.text}")
            
    except Exception as e:
        print(f"❌ Erreur: {e}")

if __name__ == "__main__":
    print("🧪 Test de l'API /explore")
    print("=" * 40)
    test_explore_endpoint()