Skip to main content

A rate limiter library for managing API key usage.

Project description

Rate Limiter

Rate Limiter 是一个用于管理 API 密钥使用的限流库,支持滑动窗口速率限制。

特性

  • 支持每个 API 密钥的自定义速率限制
  • 使用 Redis 作为后端存储
  • 提供简单的接口来获取可用的 API 密钥

安装

首先,确保你已经安装了 Python 和 Redis。然后,你可以通过以下命令安装依赖:

pip install -r requirements.txt

使用说明

以下是一个简单的使用示例:

from rate_limiter import RateWindowLimiter

api_key_limits = {
    "api_key_1": {"max_rpm": 2, "max_tpm": 5000, "max_tpd": 100000},
    "api_key_2": {"max_rpm": 3, "max_tpm": 6000, "max_tpd": 120000},
    "api_key_3": {"max_rpm": 4, "max_tpm": 7000, "max_tpd": 140000},    
}

# 初始化Redis客户端
redis_client = redis.Redis(host='localhost', port=6379, decode_responses=True)

# 创建限流器
rate_limiter = RateWindowLimiter(api_key_limits=api_key_limits, redis_client=redis_client)

# 模拟请求
for _ in range(15):
    allowed, wait_time, api_key = rate_limiter.acquire()
    if allowed:
        print(f"请求成功,使用API密钥: {api_key}")
        # 执行API调用...
    else:
        print(f"需等待 {wait_time:.2f} 秒后重试,API密钥: {api_key}")
        time.sleep(wait_time)

贡献

欢迎贡献代码!请 fork 本仓库并提交 pull request。

许可证

本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

key_rate_limiter-0.1.1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file key_rate_limiter-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for key_rate_limiter-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a34df2771cf935fbc7f4adb77fc588eb1b0bf1e2f3ce225c4050eaaaf59d6744
MD5 a05809bfaacb8598f5538e269d3c48b0
BLAKE2b-256 323f7ec63c2f97d81fbb933bee42c368d8fd790af94712fa9ca149cb3357a325

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page