From 5713eae75cff5e453b8291835a16e7364581cf73 Mon Sep 17 00:00:00 2001 From: Sameer Kankute Date: Mon, 22 Dec 2025 11:45:49 +0530 Subject: [PATCH] Add image tokens in usage object --- .../vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py index 84a5958ee5e..b1810b40cf9 100644 --- a/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py +++ b/litellm/llms/vertex_ai/gemini/vertex_and_google_ai_studio_gemini.py @@ -1476,6 +1476,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): cached_tokens: Optional[int] = None audio_tokens: Optional[int] = None text_tokens: Optional[int] = None + image_tokens: Optional[int] = None prompt_tokens_details: Optional[PromptTokensDetailsWrapper] = None reasoning_tokens: Optional[int] = None response_tokens: Optional[int] = None @@ -1526,6 +1527,8 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): audio_tokens = detail.get("tokenCount", 0) elif detail["modality"] == "TEXT": text_tokens = detail.get("tokenCount", 0) + elif detail["modality"] == "IMAGE": + image_tokens = detail.get("tokenCount", 0) if "thoughtsTokenCount" in usage_metadata: reasoning_tokens = usage_metadata["thoughtsTokenCount"] # Also add reasoning tokens to response_tokens_details @@ -1546,6 +1549,7 @@ class VertexGeminiConfig(VertexAIBaseConfig, BaseConfig): cached_tokens=cached_tokens, audio_tokens=audio_tokens, text_tokens=text_tokens, + image_tokens=image_tokens, ) completion_tokens = response_tokens or completion_response["usageMetadata"].get(