File size: 1,181 Bytes
7a88b43
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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