fix: add implicit caching cost calculation for Gemini 2.x models (#12585)
Added cache_read_input_token_cost (25% of regular input cost) to all 39 Gemini 2.x models to properly support implicit context caching cost calculations. Previously, cached tokens were being charged at full price instead of the discounted rate. Fixes #11156
This commit is contained in:
parent
19b67bd1d1
commit
b757bb68f9
@ -318,8 +318,8 @@
|
||||
"max_tokens": 131072,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 16384,
|
||||
"input_cost_per_token": 0.000003,
|
||||
"output_cost_per_token": 0.00001,
|
||||
"input_cost_per_token": 3e-06,
|
||||
"output_cost_per_token": 1e-05,
|
||||
"litellm_provider": "watsonx",
|
||||
"mode": "chat",
|
||||
"supports_function_calling": true,
|
||||
@ -6831,7 +6831,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-pro-exp-02-05": {
|
||||
"max_tokens": 8192,
|
||||
@ -6872,7 +6874,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -6918,7 +6922,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-001": {
|
||||
"max_tokens": 8192,
|
||||
@ -6954,7 +6960,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"deprecation_date": "2026-02-05",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-thinking-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -7000,7 +7008,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-thinking-exp-01-21": {
|
||||
"max_tokens": 65536,
|
||||
@ -7046,7 +7056,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro": {
|
||||
"max_tokens": 65535,
|
||||
@ -7087,7 +7099,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-exp-03-25": {
|
||||
"max_tokens": 65535,
|
||||
@ -7129,7 +7143,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro": {
|
||||
"max_tokens": 65535,
|
||||
@ -7172,7 +7188,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash": {
|
||||
"max_tokens": 65535,
|
||||
@ -7217,7 +7235,9 @@
|
||||
"supports_url_context": true,
|
||||
"tpm": 8000000,
|
||||
"rpm": 100000,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash": {
|
||||
"max_tokens": 65535,
|
||||
@ -7260,7 +7280,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-preview-tts": {
|
||||
"max_tokens": 65535,
|
||||
@ -7298,7 +7320,9 @@
|
||||
"audio"
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-preview-05-20": {
|
||||
"max_tokens": 65535,
|
||||
@ -7341,7 +7365,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-preview-04-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7383,7 +7409,9 @@
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-lite-preview-06-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7428,7 +7456,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash-preview-05-20": {
|
||||
"max_tokens": 65535,
|
||||
@ -7471,7 +7501,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash-preview-04-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7513,7 +7545,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash-lite-preview-06-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7556,7 +7590,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash": {
|
||||
"max_tokens": 8192,
|
||||
@ -7593,7 +7629,9 @@
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true
|
||||
"supports_url_context": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-lite": {
|
||||
"max_input_tokens": 1048576,
|
||||
@ -7626,7 +7664,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-lite-001": {
|
||||
"max_input_tokens": 1048576,
|
||||
@ -7660,7 +7700,9 @@
|
||||
"supports_tool_choice": true,
|
||||
"deprecation_date": "2026-02-25",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-06-05": {
|
||||
"max_tokens": 65535,
|
||||
@ -7703,7 +7745,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-05-06": {
|
||||
"max_tokens": 65535,
|
||||
@ -7749,7 +7793,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-03-25": {
|
||||
"max_tokens": 65535,
|
||||
@ -7792,7 +7838,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-preview-image-generation": {
|
||||
"max_tokens": 8192,
|
||||
@ -7828,7 +7876,9 @@
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-tts": {
|
||||
"max_tokens": 65535,
|
||||
@ -7861,7 +7911,9 @@
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-pro-exp-02-05": {
|
||||
"max_tokens": 8192,
|
||||
@ -7900,7 +7952,9 @@
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-preview-image-generation": {
|
||||
"max_tokens": 8192,
|
||||
@ -7937,7 +7991,9 @@
|
||||
],
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash": {
|
||||
"max_tokens": 8192,
|
||||
@ -7975,7 +8031,9 @@
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true
|
||||
"supports_url_context": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-lite": {
|
||||
"max_input_tokens": 1048576,
|
||||
@ -8009,7 +8067,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.0-flash-lite",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-001": {
|
||||
"max_tokens": 8192,
|
||||
@ -8045,7 +8105,9 @@
|
||||
"image"
|
||||
],
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-tts": {
|
||||
"max_tokens": 65535,
|
||||
@ -8079,7 +8141,9 @@
|
||||
"audio"
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-06-05": {
|
||||
"max_tokens": 65535,
|
||||
@ -8118,7 +8182,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-05-06": {
|
||||
"max_tokens": 65535,
|
||||
@ -8157,7 +8223,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-03-25": {
|
||||
"max_tokens": 65535,
|
||||
@ -8195,7 +8263,9 @@
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -8242,7 +8312,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-lite-preview-02-05": {
|
||||
"max_tokens": 8192,
|
||||
@ -8277,7 +8349,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash-lite",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-thinking-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -8324,7 +8398,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-thinking-exp-01-21": {
|
||||
"max_tokens": 8192,
|
||||
@ -8371,7 +8447,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemma-3-27b-it": {
|
||||
"max_tokens": 8192,
|
||||
@ -16068,4 +16146,4 @@
|
||||
"mode": "chat",
|
||||
"source": "https://platform.moonshot.ai/docs/pricing"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -318,8 +318,8 @@
|
||||
"max_tokens": 131072,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 16384,
|
||||
"input_cost_per_token": 0.000003,
|
||||
"output_cost_per_token": 0.00001,
|
||||
"input_cost_per_token": 3e-06,
|
||||
"output_cost_per_token": 1e-05,
|
||||
"litellm_provider": "watsonx",
|
||||
"mode": "chat",
|
||||
"supports_function_calling": true,
|
||||
@ -6831,7 +6831,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-pro-exp-02-05": {
|
||||
"max_tokens": 8192,
|
||||
@ -6872,7 +6874,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -6918,7 +6922,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-001": {
|
||||
"max_tokens": 8192,
|
||||
@ -6954,7 +6960,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"deprecation_date": "2026-02-05",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-thinking-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -7000,7 +7008,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-thinking-exp-01-21": {
|
||||
"max_tokens": 65536,
|
||||
@ -7046,7 +7056,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro": {
|
||||
"max_tokens": 65535,
|
||||
@ -7087,7 +7099,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-exp-03-25": {
|
||||
"max_tokens": 65535,
|
||||
@ -7129,7 +7143,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro": {
|
||||
"max_tokens": 65535,
|
||||
@ -7172,7 +7188,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash": {
|
||||
"max_tokens": 65535,
|
||||
@ -7217,7 +7235,9 @@
|
||||
"supports_url_context": true,
|
||||
"tpm": 8000000,
|
||||
"rpm": 100000,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash": {
|
||||
"max_tokens": 65535,
|
||||
@ -7260,7 +7280,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-preview-tts": {
|
||||
"max_tokens": 65535,
|
||||
@ -7298,7 +7320,9 @@
|
||||
"audio"
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-preview-05-20": {
|
||||
"max_tokens": 65535,
|
||||
@ -7341,7 +7365,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-preview-04-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7383,7 +7409,9 @@
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-flash-lite-preview-06-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7428,7 +7456,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash-preview-05-20": {
|
||||
"max_tokens": 65535,
|
||||
@ -7471,7 +7501,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash-preview-04-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7513,7 +7545,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.75e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-flash-lite-preview-06-17": {
|
||||
"max_tokens": 65535,
|
||||
@ -7556,7 +7590,9 @@
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash": {
|
||||
"max_tokens": 8192,
|
||||
@ -7593,7 +7629,9 @@
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true
|
||||
"supports_url_context": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-lite": {
|
||||
"max_input_tokens": 1048576,
|
||||
@ -7626,7 +7664,9 @@
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-lite-001": {
|
||||
"max_input_tokens": 1048576,
|
||||
@ -7660,7 +7700,9 @@
|
||||
"supports_tool_choice": true,
|
||||
"deprecation_date": "2026-02-25",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-06-05": {
|
||||
"max_tokens": 65535,
|
||||
@ -7703,7 +7745,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-05-06": {
|
||||
"max_tokens": 65535,
|
||||
@ -7749,7 +7793,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-03-25": {
|
||||
"max_tokens": 65535,
|
||||
@ -7792,7 +7838,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.0-flash-preview-image-generation": {
|
||||
"max_tokens": 8192,
|
||||
@ -7828,7 +7876,9 @@
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini-2.5-pro-preview-tts": {
|
||||
"max_tokens": 65535,
|
||||
@ -7861,7 +7911,9 @@
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_parallel_function_calling": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-pro-exp-02-05": {
|
||||
"max_tokens": 8192,
|
||||
@ -7900,7 +7952,9 @@
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/pricing",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-preview-image-generation": {
|
||||
"max_tokens": 8192,
|
||||
@ -7937,7 +7991,9 @@
|
||||
],
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash": {
|
||||
"max_tokens": 8192,
|
||||
@ -7975,7 +8031,9 @@
|
||||
"supports_tool_choice": true,
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true
|
||||
"supports_url_context": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-lite": {
|
||||
"max_input_tokens": 1048576,
|
||||
@ -8009,7 +8067,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.0-flash-lite",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-001": {
|
||||
"max_tokens": 8192,
|
||||
@ -8045,7 +8105,9 @@
|
||||
"image"
|
||||
],
|
||||
"source": "https://ai.google.dev/pricing#2_0flash",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 2.5e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-tts": {
|
||||
"max_tokens": 65535,
|
||||
@ -8079,7 +8141,9 @@
|
||||
"audio"
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-06-05": {
|
||||
"max_tokens": 65535,
|
||||
@ -8118,7 +8182,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-05-06": {
|
||||
"max_tokens": 65535,
|
||||
@ -8157,7 +8223,9 @@
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_url_context": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.5-pro-preview-03-25": {
|
||||
"max_tokens": 65535,
|
||||
@ -8195,7 +8263,9 @@
|
||||
],
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",
|
||||
"supports_web_search": true,
|
||||
"supports_pdf_input": true
|
||||
"supports_pdf_input": true,
|
||||
"cache_read_input_token_cost": 3.125e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -8242,7 +8312,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-lite-preview-02-05": {
|
||||
"max_tokens": 8192,
|
||||
@ -8277,7 +8349,9 @@
|
||||
"text"
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash-lite",
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 1.875e-08,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-thinking-exp": {
|
||||
"max_tokens": 8192,
|
||||
@ -8324,7 +8398,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemini-2.0-flash-thinking-exp-01-21": {
|
||||
"max_tokens": 8192,
|
||||
@ -8371,7 +8447,9 @@
|
||||
],
|
||||
"source": "https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",
|
||||
"supports_tool_choice": true,
|
||||
"supports_web_search": true
|
||||
"supports_web_search": true,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"gemini/gemma-3-27b-it": {
|
||||
"max_tokens": 8192,
|
||||
@ -16068,4 +16146,4 @@
|
||||
"mode": "chat",
|
||||
"source": "https://platform.moonshot.ai/docs/pricing"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -411,3 +411,75 @@ def test_bedrock_cost_calculator_comparison_with_without_cache():
|
||||
assert cost_with_cache < cost_no_cache
|
||||
print(f"Cost without cache: {cost_no_cache}")
|
||||
print(f"Cost with cache: {cost_with_cache}")
|
||||
|
||||
|
||||
def test_gemini_25_implicit_caching_cost():
|
||||
"""
|
||||
Test that Gemini 2.5 models correctly calculate costs with implicit caching.
|
||||
|
||||
This test reproduces the issue from #11156 where cached tokens should receive
|
||||
a 75% discount.
|
||||
"""
|
||||
from litellm import completion_cost
|
||||
from litellm.types.utils import (
|
||||
Choices,
|
||||
Message,
|
||||
ModelResponse,
|
||||
PromptTokensDetailsWrapper,
|
||||
Usage,
|
||||
)
|
||||
|
||||
# Create a mock response similar to the one in the issue
|
||||
litellm_model_response = ModelResponse(
|
||||
id="test-response",
|
||||
created=1750733889,
|
||||
model="gemini/gemini-2.5-flash-preview-04-17",
|
||||
object="chat.completion",
|
||||
system_fingerprint=None,
|
||||
choices=[
|
||||
Choices(
|
||||
finish_reason="stop",
|
||||
index=0,
|
||||
message=Message(
|
||||
content="Understood. This is a test message to check the response from the Gemini model.",
|
||||
role="assistant",
|
||||
tool_calls=None,
|
||||
function_call=None,
|
||||
),
|
||||
)
|
||||
],
|
||||
usage=Usage(
|
||||
total_tokens=15050,
|
||||
prompt_tokens=15033,
|
||||
completion_tokens=17,
|
||||
prompt_tokens_details=PromptTokensDetailsWrapper(
|
||||
audio_tokens=None,
|
||||
cached_tokens=14316, # This is cachedContentTokenCount from Gemini
|
||||
),
|
||||
completion_tokens_details=None,
|
||||
),
|
||||
)
|
||||
|
||||
# Calculate the cost
|
||||
result = completion_cost(
|
||||
completion_response=litellm_model_response,
|
||||
model="gemini/gemini-2.5-flash-preview-04-17",
|
||||
)
|
||||
|
||||
# From the issue:
|
||||
# input: $0.15 / 1000000 tokens
|
||||
# output: $0.60 / 1000000 tokens
|
||||
# With caching: 0.15*0.25*(14316/1000000)+0.15*((15033-14316)/1000000)+0.6*(17/1000000) = 0.0006546
|
||||
|
||||
# Breakdown:
|
||||
# - Cached tokens: 14316 * 0.15/1M * 0.25 = 0.00053685
|
||||
# - Non-cached tokens: (15033-14316) * 0.15/1M = 717 * 0.15/1M = 0.00010755
|
||||
# - Output tokens: 17 * 0.6/1M = 0.00001020
|
||||
# Total: 0.00053685 + 0.00010755 + 0.00001020 = 0.0006546
|
||||
|
||||
expected_cost = 0.0006546
|
||||
|
||||
# Allow for small floating point differences
|
||||
assert abs(result - expected_cost) < 1e-8, f"Expected cost {expected_cost}, but got {result}"
|
||||
|
||||
print(f"✓ Gemini 2.5 implicit caching cost calculation is correct: ${result:.8f}")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user