CommencerCommencer gratuitement

Mise en œuvre d'un limiteur de débit

Vous développez une API d'analyse des sentiments qui permet aux utilisateurs d'analyser des textes afin d'en déterminer le sentiment. Afin d'éviter tout abus, il est nécessaire de mettre en place une limitation du débit qui n'autorise qu'5 e requête par minute et par clé API. La classe « RateLimiter » est déjà créée et vous devez ajouter la méthode « is_rate_limited » dans la classe « RateLimiter » qui vérifie le nombre de requêtes effectuées dans un intervalle d'une minute.

Les classes datetime et timedelta de la bibliothèque datetime ont été pré-importées.

Cet exercice fait partie du cours

Déployer l'IA en production avec FastAPI

Afficher le cours

Instructions

  • Obtenir l'heure actuelle et calculer l'horodatage d'il y a une minute.
  • Filtrez la liste des requêtes pour ne conserver que les horodatages de la dernière minute.
  • Veuillez vérifier si le nombre de requêtes récentes dépasse la limite.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

def is_rate_limited(self, api_key: str) -> bool:
    # Get current time and the timestamp for one minute ago
    now = _____
    minute_ago = now - _____(minutes=1)
    
    # Remove requests older than 1 minute
    self.requests[api_key] = [
        req_time for req_time in self.requests[api_key]
        if req_time > _____]
    
    # Check if no. of requests exceeded the set limit
    if len(self.requests[api_key]) ____ self.requests_per_minute:
        return True
    self.requests[api_key].append(now)
    return False
Modifier et exécuter le code