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 identifiertier(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
- Rate Limiting Core - Core rate limiting service