litellm/tests/batches_tests
Sameer Kankute c2efe9e422
fix(vertex-ai): fix zero cost/usage on completed Vertex AI batch jobs (#27912)
* fix(vertex-ai): fix zero cost/usage on completed Vertex AI batch jobs

Vertex batch jobs recorded 0 spend and 0 tokens after PR #25627 added
automatic transformation of GCS predictions.jsonl to OpenAI format.

Two bugs fixed:

1. batch_utils.py: the Vertex-specific cost/usage reader
   (calculate_vertex_ai_batch_cost_and_usage) was always invoked and
   reads raw usageMetadata fields that no longer exist in the
   OpenAI-shaped output. Now the reader is only used when
   disable_vertex_batch_output_transformation=True; otherwise the
   generic path handles the already-transformed OpenAI-shaped content.

2. cost_calculator.py: batch_cost_calculator skipped the global
   litellm.get_model_info() lookup when a model_info dict was passed
   in, even when that dict had no pricing fields (e.g. deployment
   metadata with only id/db_model). It now falls back to the global
   pricing table when the provided model_info has no pricing data.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Update litellm/cost_calculator.py

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix(cost-calculator): use not-any guard for pricing fallback in batch_cost_calculator

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(cost-calculator): treat explicit zero batch pricing as set in model_info

The fallback to litellm.get_model_info() used truthy checks on pricing
fields, so 0.0 was treated as missing and replaced by global rates.
Use `is not None` like elsewhere in cost calculation. Add regression test.

Co-authored-by: Sameer Kankute <Sameerlite@users.noreply.github.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Sameer Kankute <Sameerlite@users.noreply.github.com>
2026-05-15 04:47:02 -07:00
..
batch_job_results_furniture.jsonl (feat) Add cost tracking for /batches requests OpenAI (#7384) 2024-12-23 17:47:26 -08:00
bedrock_batch_completions.jsonl test fix us.anthropic.claude-haiku-4-5-20251001-v1:0 (#24931) 2026-04-01 11:01:03 -07:00
conftest.py [Fix] Batches Tests: Remove VCR Auto-Marker 2026-05-07 15:39:46 -07:00
openai_batch_completions.jsonl (feat) Add cost tracking for /batches requests OpenAI (#7384) 2024-12-23 17:47:26 -08:00
pathrise-convert-1606954137718.json use pathrise-convert-1606954137718 2025-01-05 14:14:43 -08:00
test_batch_custom_pricing.py fix(vertex-ai): fix zero cost/usage on completed Vertex AI batch jobs (#27912) 2026-05-15 04:47:02 -07:00
test_batch_rate_limits.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_batches_logging_unit_tests.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_bedrock_files_and_batches.py fix(ci): unbreak realtime + bedrock batch tests (#27690) 2026-05-11 18:08:14 -07:00
test_fine_tuning_api.py [Fix] Fine-Tuning Test: Bump Off Deprecated gpt-3.5-turbo-0125 2026-05-07 14:41:58 -07:00
test_hosted_vllm_batches_and_files.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_manus_files_all_methods.py style: run black formatter on files from main merge 2026-04-17 13:02:59 -07:00
test_openai_batches_and_files.py Merge remote-tracking branch 'origin/litellm_internal_staging' into litellm_fix_scim_virtual_key_deactivation 2026-05-01 20:29:19 -07:00
vertex_batch_completions.jsonl (feat) Add cost tracking for /batches requests OpenAI (#7384) 2024-12-23 17:47:26 -08:00