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