@@ -13,6 +13,8 @@ class VertexAICallbackHandler(BaseCallbackHandler):
13
13
completion_tokens : int = 0
14
14
completion_characters : int = 0
15
15
successful_requests : int = 0
16
+ total_tokens : int = 0
17
+ cached_tokens : int = 0
16
18
17
19
def __init__ (self ) -> None :
18
20
super ().__init__ ()
@@ -24,6 +26,8 @@ def __repr__(self) -> str:
24
26
f"\t Prompt characters: { self .prompt_characters } \n "
25
27
f"\t Completion tokens: { self .completion_tokens } \n "
26
28
f"\t Completion characters: { self .completion_characters } \n "
29
+ f"\t Cached tokens: { self .cached_tokens } \n "
30
+ f"\t Total tokens: { self .total_tokens } \n "
27
31
f"Successful requests: { self .successful_requests } \n "
28
32
)
29
33
@@ -44,7 +48,7 @@ def on_llm_new_token(self, token: str, **kwargs: Any) -> None:
44
48
45
49
def on_llm_end (self , response : LLMResult , ** kwargs : Any ) -> None :
46
50
"""Collects token usage."""
47
- completion_tokens , prompt_tokens = 0 , 0
51
+ completion_tokens , prompt_tokens , total_tokens , cached_tokens = 0 , 0 , 0 , 0
48
52
completion_characters , prompt_characters = 0 , 0
49
53
for generations in response .generations :
50
54
if len (generations ) > 0 and generations [0 ].generation_info :
@@ -53,6 +57,8 @@ def on_llm_end(self, response: LLMResult, **kwargs: Any) -> None:
53
57
)
54
58
completion_tokens += usage_metadata .get ("candidates_token_count" , 0 )
55
59
prompt_tokens += usage_metadata .get ("prompt_token_count" , 0 )
60
+ total_tokens += usage_metadata .get ("total_token_count" , 0 )
61
+ cached_tokens += usage_metadata .get ("cached_content_token_count" , 0 )
56
62
completion_characters += usage_metadata .get (
57
63
"candidates_billable_characters" , 0
58
64
)
@@ -64,3 +70,5 @@ def on_llm_end(self, response: LLMResult, **kwargs: Any) -> None:
64
70
self .completion_characters += completion_characters
65
71
self .completion_tokens += completion_tokens
66
72
self .successful_requests += 1
73
+ self .total_tokens += total_tokens
74
+ self .cached_tokens += cached_tokens
0 commit comments