Skip to main content

Rate Limiting Tiers

Tier management system for rate limiting and user access control in RecoAgent applications.

Overview

The rate limiting tiers system provides comprehensive tier management for controlling user access, rate limits, and feature availability based on user subscription levels.

Core Features

  • Tier Management: User tier assignment and management
  • Dynamic Limits: Configurable rate limits per tier
  • Feature Access: Tier-based feature access control
  • Upgrade Management: Automatic and manual tier upgrades
  • Usage Tracking: Tier usage monitoring and analytics

Usage Examples

Basic Tier Management

from recoagent.rate_limiting.tiers import TierManager

# Create tier manager
tier_manager = TierManager()

# Define tiers
tiers = {
"free": {
"requests_per_minute": 10,
"requests_per_hour": 100,
"features": ["basic_search"]
},
"premium": {
"requests_per_minute": 100,
"requests_per_hour": 1000,
"features": ["advanced_search", "analytics"]
},
"enterprise": {
"requests_per_minute": 1000,
"requests_per_hour": 10000,
"features": ["all_features", "custom_models"]
}
}

tier_manager.configure_tiers(tiers)

# Assign user tier
tier_manager.assign_tier("user_123", "premium")

# Check tier limits
limits = tier_manager.get_tier_limits("user_123")
print(f"Requests per minute: {limits['requests_per_minute']}")

Advanced Tier Management

from recoagent.rate_limiting.tiers import AdvancedTierManager

# Create advanced tier manager
advanced_tier_manager = AdvancedTierManager(
enable_auto_upgrade=True,
enable_usage_tracking=True
)

# Create custom tier
custom_tier = advanced_tier_manager.create_tier(
name="custom",
limits={
"requests_per_minute": 500,
"requests_per_hour": 5000,
"cost_limit_per_day": 50.0
},
features=["custom_models", "priority_support"],
upgrade_conditions={
"min_usage": 0.8,
"min_satisfaction": 0.9
}
)

# Monitor tier usage
usage_stats = advanced_tier_manager.get_tier_usage("user_123")
print(f"Usage percentage: {usage_stats['usage_percentage']:.2%}")

API Reference

TierManager Methods

configure_tiers(tiers: Dict) -> None

Configure tier definitions

Parameters:

  • tiers (Dict): Tier configuration dictionary

assign_tier(user_id: str, tier: str) -> None

Assign tier to user

Parameters:

  • user_id (str): User identifier
  • tier (str): Tier name

get_tier_limits(user_id: str) -> Dict

Get tier limits for user

Parameters:

  • user_id (str): User identifier

Returns: Dictionary of tier limits

See Also