import time from threading import Lock class TokenManager: def __init__(self, token_limit: int = 50000, reset_interval: int = 30): self.token_limit = token_limit self.reset_interval = reset_interval self.token_count = 0 self.last_reset = time.time() self.lock = Lock() def track_tokens(self, tokens: int) -> None: """ Track token usage and reset if needed """ with self.lock: current_time = time.time() if current_time - self.last_reset > self.reset_interval: self.token_count = 0 self.last_reset = current_time self.token_count += tokens if self.token_count > self.token_limit: print(f"Warning: Token limit of {self.token_limit} exceeded!") def get_token_usage(self) -> int: """ Get current token usage """ with self.lock: current_time = time.time() if current_time - self.last_reset > self.reset_interval: self.token_count = 0 self.last_reset = current_time return self.token_count