6b7e6b44f1
Python Build and Type Check / python-ci (ubuntu-latest, 3.11) (push) Has been cancelled
Python Build and Type Check / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Build and Type Check / python-ci (windows-latest, 3.11) (push) Has been cancelled
Python Build and Type Check / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Integration Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Integration Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Notebook Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Notebook Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Smoke Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Smoke Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
Python Unit Tests / python-ci (ubuntu-latest, 3.13) (push) Has been cancelled
Python Unit Tests / python-ci (windows-latest, 3.13) (push) Has been cancelled
gh-pages / build (push) Has been cancelled
Python Publish (pypi) / Upload release to PyPI (push) Has been cancelled
Spellcheck / spellcheck (push) Has been cancelled
39 lines
917 B
Python
39 lines
917 B
Python
# Copyright (c) 2025 Microsoft Corporation.
|
|
# Licensed under the MIT License
|
|
|
|
"""LiteLLM Rate Limiter."""
|
|
|
|
from abc import ABC, abstractmethod
|
|
from collections.abc import Iterator
|
|
from contextlib import contextmanager
|
|
from typing import Any
|
|
|
|
|
|
class RateLimiter(ABC):
|
|
"""Abstract base class for rate limiters."""
|
|
|
|
@abstractmethod
|
|
def __init__(
|
|
self,
|
|
**kwargs: Any,
|
|
) -> None:
|
|
"""Initialize the Rate Limiter."""
|
|
raise NotImplementedError
|
|
|
|
@abstractmethod
|
|
@contextmanager
|
|
def acquire(self, token_count: int) -> Iterator[None]:
|
|
"""
|
|
Acquire Rate Limiter.
|
|
|
|
Args
|
|
----
|
|
token_count: int
|
|
The estimated number of prompt and response tokens for the current request.
|
|
|
|
Yields
|
|
------
|
|
None: This context manager does not return any value.
|
|
"""
|
|
raise NotImplementedError
|