File size: 679 Bytes
3cad23b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from contextlib import contextmanager

USAGE_TRACKER = None

@contextmanager
def usage_tracker():
    global USAGE_TRACKER
    assert USAGE_TRACKER is None
    USAGE_TRACKER = []
    try:
        yield
    finally:
        USAGE_TRACKER = None

def get_total_usage():
    global USAGE_TRACKER

    prompt_tokens = 0
    completion_tokens = 0

    for usage in USAGE_TRACKER:
        prompt_tokens += usage['prompt_tokens']
        completion_tokens += usage['completion_tokens']

    return {
        'prompt_tokens': prompt_tokens,
        'completion_tokens': completion_tokens
    }

def append_to_usage_tracker(usage):
    global USAGE_TRACKER
    USAGE_TRACKER.append(usage)