НачатьНачать бесплатно

Реализация ограничителя частоты запросов

Вы разрабатываете API для анализа тональности текста, с помощью которого пользователи могут определять эмоциональную окраску сообщений. Чтобы предотвратить злоупотребления, необходимо реализовать ограничение частоты запросов: не более 5 запросов в минуту для каждого API-ключа. Класс RateLimiter уже создан — вам нужно добавить в него метод is_rate_limited, который проверяет количество запросов, выполненных в течение последней минуты.

Классы datetime и timedelta из библиотеки datetime уже импортированы.

Это упражнение является частью курса

Развёртывание ИИ в производственной среде с помощью FastAPI

Посмотреть курс

Инструкции к упражнению

  • Получите текущее время и вычислите метку времени одну минуту назад.
  • Отфильтруйте список запросов, оставив только те, что были сделаны в течение последней минуты.
  • Проверьте, превышает ли количество недавних запросов установленный лимит.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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
Редактировать и запускать код